2014-02-24 22 views
2

我是Selenium Ruby绑定的新手。我想知道文档网站,我可以找到可用于Ruby驱动程序功能的选项。Selenium Ruby绑定功能文档

我已经在网上搜索,发现大多是与Java相关的帖子:

https://code.google.com/p/selenium/wiki/DesiredCapabilities

我需要知道尤其是红宝石等价物:“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

这是语言无关。唯一的区别是*你如何传递能力。向我们展示迄今为止您在构建驱动程序方面的情况。 – Arran

+0

@Arran,我在我的问题中添加了代码。我之所以有点困惑的原因是,在上面的链接属性是“ignoreProtectedModeSettings”,因为在ruby绑定“ignore_protected_mode_settings”正在工作。 – Prasant

回答

3

从链接 - 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 
+0

谢谢@Arup,您可以提供链接,以获取有关Ruby绑定的API参考/教程.. – Prasant

+0

@ user3098734我已经为您提供了我编写此代码的所有文档。你能告诉我,你在找什么具体的东西? –

+0

感谢您的信息。但是我有点困惑的原因是,在上面的链接属性是“ignoreProtectedModeSettings”,因为在ruby绑定“ignore_protected_mode_settings”中也在工作。 – Prasant

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 

以上代码处理保护模式,缩放设置(在某些情况下,硒是不能识别的对象)和Alert模式 - 这是接受模式错误。

希望,这将有利于其他:)

干杯..

+0

我告诉过你 - 你做错了。 [这里](http://code.google.com/p/selenium/wiki/RubyBindings#Remote)是提示。无论如何,祝你好运。 :-) –

+0

谢谢奥雅纳帮助:) – Prasant