ruby – 如何访问Firefox扩展我添加在Selenium Webdriver?

我知道您可以加载一个现有的Firefox配置文件,或者使用selenium-webdriver gem中的 Ruby Bindings创建一个,如下所述:

http://code.google.com/p/selenium/wiki/RubyBindings

然后使用add_extension添加任何数量的Firefox扩展到实例,但是什么?我使用的扩展窗口在测试期间不会出现.如何使用扩展名?

当驱动程序打开Firefox时,有没有办法认打开扩展名?

以下是我使用的代码

#!/usr/bin/env ruby
require "rubygems"
require "selenium-webdriver"

default_profile = Selenium::WebDriver::Firefox::Profile.from_name "default"
default_profile.add_extension("/Users/******/Library/Application Support/Firef\
ox/Profiles/wvon3h99.default/extensions/{9c51bd27-6ed8-4000-a2bf-36cb95c0c947}.\
xpi")

driver = Selenium::WebDriver.for(:firefox,:profile => default_profile)
driver.navigate.to "http://google.com"

element = driver.find_element(:name,'q')
element.send_keys "Hello WebDriver!"
element.submit

puts driver.title

driver.quit

解决方法

这取决于扩展.通常,在创建FF配置文件时,通过设置适当的属性(可以在about中找到的配置文件)来控制扩展的行为.例如,在FF启动后,认情况下打开Firebug窗口,我将在我的代码中包含以下行:
default_profile["extensions.firebug.allPagesActivation"] = true

我使用的扩展通常有一些自动导出功能,可以自动将数据发送到服务器或将其保存在磁盘上.恐怕没有办法使用WebDriver来控制扩展,所以并不是所有的扩展都可以在自动测试中使用.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...