Selenium Ruby绑定功能文档

时间:2014-02-24 10:26:35

标签: ruby selenium selenium-webdriver

我是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

2 个答案:

答案 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无法识别对象)和模态警报 - 它接受模态错误。

希望,这对其他人有用:)

干杯..