当前位置: 首页 > 编程笔记 >

Ruby下WebDriver的相关操作指南

訾安邦
2023-03-14
本文向大家介绍Ruby下WebDriver的相关操作指南,包括了Ruby下WebDriver的相关操作指南的使用技巧和注意事项,需要的朋友参考一下

显性等待:
 

wait = Selenium::WebDriver::Wait.new(:timeout => 3)
wait.until { driver.find_element(:id => "cheese").displayed? }

 

隐性等待:
 

driver = Selenium::WebDriver.for :firefox
driver.manage.timeouts.implicit_wait = 3 # seconds

 内部超时:

WebDriver在内部使用http协议与各种driver发生交互联系。默认情况下,Ruby标准库中的Net::HTTP协议使用时有60秒默认超时时间,如果你调用Driver去加载一个超过60秒时间的页面,你会看到一个来自于Net:HTTP的超时错误。你可以在启动浏览器前手动配置超时时间。

 

client = Selenium::WebDriver::Remote::Http::Default.new
client.timeout = 120 # seconds
driver = Selenium::WebDriver.for(:remote, :http_client => client)

 ruby webdriver 启动firefox driver时,加载firebug的扩展

在官方wiki上看到
Adding an extension
It's often useful to have Firebug available in the Firefox instance launched by WebDriver:
 

profile = Selenium::WebDriver::Firefox::Profile.new
profile.add_extension("/path/to/firebug.xpi")
driver = Selenium::WebDriver.for :firefox, :profile => profile

 

 于是乎自己尝试了下,但是呢每次都是提示我firebug.xpi找不到

今天有空倒腾了,问题解决了
其实是之前的理解错了,因为dr =Selenium::WebDriver.for:ff
启动ff时,都是初始化一个最简单的profile,里面不带有firebug插件的,也就是说,哪怕我们原先在firefox上面安装了firebug,也是启动不了的,所以当我们需要使用firebug时,才需要加载一个firebug的扩展
 

profile.add_extension("/path/to/firebug.xpi")

 至于“/path/to/firebug.xpi”就是firebug.xpi的存放路径了,我们可以去网上下载一个firebug.xpi(对应版本, 我的ff是14,可以使用firebug-1.10.4.xpi,最好使用非firefox浏览器下载,不然提示你直接安装到firefox)
我们可以直接把firefox.xpi存放在我们脚本所存放的路径,相对路径和绝对路径都可以
举个百度的例子
 

require 'selenium-webdriver'
 
#dr = Selenium::WebDriver.for :ff
profile = Selenium::WebDriver::Firefox::Profile.new
profile.add_extension("path/to/firebug-1.10.4.xpi") <font color="DarkOrchid">#firefox-1.10.4.xpi存放在与脚本同级的path/to下面</font>
dr = Selenium::WebDriver.for :firefox, :profile => profile
dr.get "http://www.baidu.com"

 这样子当我们需要查看dom结构时,我们就可以直接在打开的测试页面上调试啦,不用去新开个firefox去查看dom结构了。

 类似资料:
  • (1)在线预览         直接点击文件,即可在线预览文件 (2)发送       点击操作-发送,即可将文档以轻推文件的方式发送到轻推联系人/群。 1)点击则进入轻推选人页面; 2)发送之后则以轻推文件的方式发到聊天页面; 3)发送对象为我的通讯录所有对象。 (3)收藏/取消收藏         点击收藏按钮,即可进行收藏,支持将我的空间或者团队空间、共享给我的文件或者文件夹进行收藏,方便查

  • 微博的数据模型构建好了,也编写了相关的视图文件,接下来我们的开发重点是,通过网页发布微博。本节,我们会初步实现动态流,第 12 章再完善。最后,和用户资源一样,我们还要实现在网页中删除微博的功能。 上述功能的实现和之前的方式有点不同,需要特别注意:微博资源相关的页面不通过微博控制器实现,而是通过资料页面和首页实现。因此微博控制器不需要 new 和 edit 动作,只需要 create 和 dest

  • 本文向大家介绍针对Ruby的Selenium WebDriver安装指南,包括了针对Ruby的Selenium WebDriver安装指南的使用技巧和注意事项,需要的朋友参考一下 Selenium 1.x时代已经远去,它理应躺在历史的角落里,靠着壁炉烤着火,抽着旱烟,在袅袅的升起的青烟中回忆那曾经属于自己的美好时代。 不过事实却并非如此,现今原本早应退役的selenium 1.x却还是多数人坚定的

  • 主要内容:数组变维操作,数组转置操作,修改数组维度操作,连接与分割数组操作NumPy 中包含了一些处理数组的常用方法,大致可分为以下几类: 数组变维操作 数组转置操作 修改数组维度操作 连接与分割数组操作 下面分别对它们进行介绍。 数组变维操作 数组变维操作 函数名称 函数介绍 reshape 在不改变数组元素的条件下,修改数组的形状。 flat 返回是一个迭代器,可以用 for 循环遍历其中的每一个元素。 flatten 以一维数组的形式返回一份数组的副本,对副本的操

  • 指定字符集建库 mysql> create database app default charset utf8; # 指定字符集建库 Query OK, 1 row affected (0.00 sec) mysql> show create database app\G #查看建库语句以及库的字符集 *************************** 1. row *************

  • 5.1 Excel 基础操作 Range相关 Range 属性的一些 A1 样式引用 Range("A1") ' 单元格 A1 Range("A1:B5") ' 从单元格 A1 到单元格 B5 的区域 Range("C5:D9, G9:H16") ' 多块选定区域 ' 选中不关联的单元格,cells(2, 3)返回结果为:B3 Union(Range("