我是Selenium Ruby绑定的新手。我想知道文档网站,在那里我可以找到可用于Ruby Driver功能的选项。
我搜索了网页,发现了与Java相关的帖子:
https://code.google.com/p/selenium/wiki/DesiredCapabilities
我需要知道特别是Ruby的等价物:“ unexpectedAlertBehaviour ”能力。
提前致谢。
添加了代码:
代码
def initialize(driverType)
begin
cap = Selenium::WebDriver::Remote::Capabilities.ie(:ignore_protected_mode_settings=>true)
@@driver = Selenium::WebDriver.for driverType,:desired_capabilities=>cap
@@driver.manage.window.maximize
rescue Exception=>e
puts e.message
end
端
答案 0 :(得分:4)
从链接 - Read-write capabilities我找到了信息:
在抛出UnhandledAlertException之前,浏览器应该对未处理的警报做什么。可能的值是“接受”,“解雇”和“忽略”。
Key : unexpectedAlertBehaviour
type : string ( "accept"/"dismiss"/"ignore")
您需要做的是:
require 'selenium-webdriver'
driver = Selenium::WebDriver.for :firefox
driver.get "https://www.google.com/"
ob = driver.capabilities
ob[:unexpectedAlertBehaviour] = "dismiss" # or "accept"/"ignore"
driver.capabilities
将为您提供Selenium::WebDriver::Remote::Capabilities
班级的实例。现在,如果要设置任何自定义功能,则需要在通过调用driver.capabilities
获得的实例上调用方法#[]=
。
设置自定义后,您可以调用#to_json
方法查看驱动程序设置的所有当前功能:
puts ob.to_json
# >> { "browserName":"firefox","version":"21.0","platform":"WINNT","javascriptEnabled"
# >> :true,"cssSelectorsEnabled":true,"takesScreenshot":true,"nativeEvents":true,"rot
# >> atable":false,"handlesAlerts":true,"webStorageEnabled":true,"applicationCacheEna
# >> bled":true,"databaseEnabled":true,"locationContextEnabled":true,"browserConnecti
# >> onEnabled":true,"acceptSslCerts":true,"unexpectedAlertBehaviour":"dismiss"}
如果您想验证自定义的是否已按照您的意愿进行设置,请通过调用#[]
方法验证相同的内容:
puts ob[:unexpectedAlertBehaviour] # => dismiss
答案 1 :(得分:0)
我得到了解决方案。我们必须在创建驱动程序的实例之前设置驱动程序的功能。以下代码对我有用:
def initialize(driverType)
begin
cap = Selenium::WebDriver::Remote::Capabilities.ie(:ignoreProtectedModeSettings=>true,:ignoreZoomSetting=>true,:unexpectedAlertBehaviour=>"accept")
@@driver = Selenium::WebDriver.for driverType,:desired_capabilities=>cap
@@driver.manage.window.maximize
rescue Exception=>e
puts e.message
end
端
以上代码处理保护模式,缩放设置(在某些情况下,selenium无法识别对象)和模态警报 - 它接受模态错误。
希望,这对其他人有用:)
干杯..