Selenium Ruby绑定功能文档
我不熟悉Selenium Ruby绑定。我想知道文档网站,在那里我可以找到Ruby驱动程序功能的可用选项 我在网上搜索了一下,发现了大部分与Java相关的帖子: 我需要知道与Ruby特别等价的:“意外的AlertBehaviour”功能 提前谢谢 添加代码: 代码 从链接结束-我找到了以下信息: 在抛出未处理的AlertException之前,浏览器应如何处理未处理的警报。可能的值为“接受”、“拒绝”和“忽略” 您需要做的是:Selenium Ruby绑定功能文档,ruby,selenium,selenium-webdriver,Ruby,Selenium,Selenium Webdriver,我不熟悉Selenium Ruby绑定。我想知道文档网站,在那里我可以找到Ruby驱动程序功能的可用选项 我在网上搜索了一下,发现了大部分与Java相关的帖子: 我需要知道与Ruby特别等价的:“意外的AlertBehaviour”功能 提前谢谢 添加代码: 代码 从链接结束-我找到了以下信息: 在抛出未处理的AlertException之前,浏览器应如何处理未处理的警报。可能的值为“接受”、“拒绝”和“忽略” 您需要做的是: require 'selenium-webdriver' dri
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
将为您提供类的实例。现在,如果要设置任何自定义功能,则需要对从调用driver.capabilities
获得的实例调用该方法
设置自定义功能后,可以调用方法查看驱动程序设置的所有当前功能:
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"}
如果要验证是否设置了自定义设置,请调用以下方法进行验证:
我找到了解决办法。我们必须在创建驱动程序实例之前设置驱动程序的功能。以下代码适用于我:
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无法识别对象)和模式警报-它正在接受模式错误
希望,这将对其他人有所帮助:)
干杯。这是语言不可知论。唯一的区别是如何传递这些功能。向我们展示您到目前为止在如何构造驱动程序方面所取得的成果。@Arran,我已经在问题中添加了代码。我有点困惑的原因是,在上面的链接中,属性是“ignoreProtectedModeSettings”,在ruby绑定中,“ignore_protected_mode_settings”是有效的。谢谢@Arup,你能提供ruby绑定API参考/教程的链接吗?@user3098734我已经给了你所有的文档,从那里我编写了这段代码。你能告诉我,你在找什么具体的吗?谢谢你提供的信息。但我有点困惑的原因是,在上面的链接中,属性是“ignoreProtectedModeSettings”,而在ruby绑定中,“ignore_protected_mode_settings”也起作用。您在哪里设置了
ob[:unexpectedAlertBehaviour]=“disease”
?它应该会起作用。我已测试请找到以下代码:def initialize(driverType)begin@@driver=Selenium::WebDriver.for driverType cap=@driver.cap[:ignoreProtectedModeSettings]=真cap[:ignorezoomseting]=真cap[:unexpectedAlertBehaviour]=“忽略”@@driver.manage.window.maximize-rescue-Exception=>e-put e.message end-endI告诉过你-你做得不对。这就是提示。无论如何,祝你好运。:-)感谢奥雅纳的帮助:)
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
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