在 Mac 上使用 Selenium WebDriver 在 Firefox 中打开新选项卡

2023-12-15

我刚刚安装了 Selenium Web Driver 并尝试了一下。效果很好。我的用例可以描述如下:

  1. 在具有伪 X 服务器 (Xvfb) 的服务器上启动 Firefox
  2. 新的 Driver.Firefox() 对象
  3. 打开 10 个选项卡并在每个选项卡中加载一个网页
  4. 从所有加载的页面中检索 html

唯一不起作用的步骤是步骤 3。我不知道如何打开新选项卡。我在这里找到了这个:如何使用 Selenium WebDriver 和 Java 打开新选项卡?但是,我在 Mac 上进行了本地测试(即使用可见显示)以进行调试,并且我发现 Firefox 浏览器(在创建驱动程序对象时打开)在按照 SO 线程上所述进行操作时不会打开任何选项卡。所以我在这里尝试了这个:

driver = webdriver.Firefox()
driver.get("https://stackoverflow.com/")
body = driver.find_element_by_tag_name("body")
body.send_keys(Keys.CONTROL + 't')

正如我所说,它对我不起作用。那么,还有什么办法可以打开标签页呢?我使用 Selenium 2.39 (pip install selenium) 和 Python 2.7。


在 OSX 上打开新选项卡的组合键是 Command+T,因此您应该使用

body.send_keys(Keys.COMMAND + 't') 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Mac 上使用 Selenium WebDriver 在 Firefox 中打开新选项卡 的相关文章

随机推荐

  • parseInt("010", 10);与 parseInt(010, 10); 比较

    我对某个特定结果感到困惑parseInt 我以为我理解了它的大部分怪癖 但这一点还不清楚 parseInt 010 10 10 parseInt 010 10 8 but expecting 10 在第二个示例中 我指定了正确的基数 到底是
  • 生成不重复的随机数

    我想在 C 中创建一个函数 它将返回 N 范围内的随机整数 例如 兰特 N 但问题是我想追踪独特性 我不想让这些数字重复 但我也可以通过创建一个数组并在其中复制生成的整数来做到这一点 喜欢 array count rand N 并每次检查生
  • c# 如何使用 iTextsharp 从 pdf 返回字节数组

    All 我创建了以下方法来接收具有多个 tiff 页面文档的 tiff 字节数组 我需要将其转换为pdf 然后返回pdf字节数组 我对这段代码有两个问题1 我想返回一个字节 2 生成的 pdf 重复页面 public void conver
  • Visual Studio 2012 Web Publish 不复制文件

    我在 VS 2012 中有一个 Web 应用程序项目 当我使用 Web 发布工具时 它会成功构建 但不会将任何文件复制到发布目标 在本例中为文件系统 如果我查看构建输出 我可以看到所有内容都被正确复制到 obj Release Packag
  • 关于Erlang语言中“if”的用法

    这是我的代码 lists foreach fun Method Value gt ServerName method to servername Method if Value 0 andalso whereis ServerName un
  • 如何“停靠”/附加 winforms 表单

    我想将同一个应用程序中的两个表单相互附加 就像一些音乐播放器 例如 winamp 所做的那样 其中窗口可以在一侧分离或附加在一起 然后移动一个窗口电影另一个窗口也 也许有一个更好的术语来描述这种行为 有任何模式或代码示例可以做到这一点吗 看
  • 使用 JavaScript 仅允许 HTML 输入中的特定字符

    我编写了一些 JavaScript 和 jQuery 代码 它们只接受文本框中的数字输入 但这还不够 我需要将输入限制为某些数字 此文本框需要处理 SSN 号码 瑞典 SSN 并且必须以 19 或 20 开头 我想强制它以这些号码开头 但我
  • Spring 会话 + Spring Web 套接字。根据会话 ID 向特定客户端发送消息

    我已关注Quetion1 and Quetion2从堆栈溢出向特定客户端发送消息 基于其sessionId但找不到成功 下面是我的示例 RestController 类 RestController public class SpringS
  • Swift 可选 - 不同的解包方式

    我就直接说吧 有什么区别 var test String test this is an optional string if test nil println test IS NOT nil else println test is ni
  • 如何定义一个可以有多种形式的javascript属性?

    例如 IE 表格控件可以按如下方式使用 recordset fields i name recordset fields count 如何使用 javascript 定义 fields 属性 当我定义 this fields new Fie
  • iOS如何实现协议的@property

    我的理解是 协议指定方法名称 而符合该协议的其他人则负责方法的实现 那么协议中声明的属性又如何呢 实现一个属性是否意味着实现它的setter和getter 属性是一个或两个具有特定签名的方法的奇特名称 Objective C 为其提供了一个
  • 如何更改 Xamarin 表单中的 Picker 字体颜色和大小?

    我是 Xamarin 新手 目前正在 Xamarin Forms PCL 中做一个项目 有没有办法改变Picker的字体颜色和大小
  • 确定哪个依赖数组变量导致 useEffect 钩子触发

    有没有一种简单的方法可以确定a中的哪个变量useEffect的依赖数组触发函数重新触发 简单地注销每个变量可能会产生误导 如果a是一个函数并且b是一个对象 它们在记录时可能看起来相同 但实际上不同并导致 useEffect 火灾 例如 Re
  • 堆溢出的危险?

    我有一个关于堆溢出的问题 据我所知 如果堆栈变量超出其缓冲区 它可能会覆盖 EIP 和 ESP 值 例如 使程序跳转到编码器不希望它跳转的位置 据我了解 由于向后小端存储 其中数组中的字符 向后 存储 从最后到第一个 这似乎表现得像这样 另
  • PHP中的CSRF(跨站请求伪造)攻击示例及预防

    我有一个网站 人们可以这样投票 http mysite com vote 25 这将对第 25 项进行投票 我只想将此功能提供给注册用户 并且仅当他们愿意时才提供 现在我知道当有人在网站上忙碌时 有人给他们一个像这样的链接 http mys
  • 如何将 arrayList.toString() 转换为实际的 arraylist

    在我的软件中 由于没有Array数据类型输入SQLite 我保存了我的ArrayList as a String 现在我需要使用我的数组并希望将其转换回 ArrayList 我该怎么做 这里有一个例子 ArrayList
  • 如何使用谷歌地图V2在android中使用MapView?

    我想在我的活动中显示地图 在谷歌地图 V1 中我们使用
  • 使用 CSS 制作 Google API 地图标记动画? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 http bluefaqs com 2016 02 how to animate a map location marker with css 显示脉动的 GPS 位置蓝点 位于
  • SQL 点表示法

    有人可以向我解释一下 SQL Server 如何使用点表示法来识别桌子的位置 我一直以为地点是Database dbo Table但我看到代码中有其他东西代替dbo 就像是 DBName something Table有人可以解释一下吗 这
  • 在 Mac 上使用 Selenium WebDriver 在 Firefox 中打开新选项卡

    我刚刚安装了 Selenium Web Driver 并尝试了一下 效果很好 我的用例可以描述如下 在具有伪 X 服务器 Xvfb 的服务器上启动 Firefox 新的 Driver Firefox 对象 打开 10 个选项卡并在每个选项卡