Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 无法使用Watir绕过Firefox的不安全证书警告_Ruby_Selenium_Selenium Webdriver_Watir_Geckodriver - Fatal编程技术网

Ruby 无法使用Watir绕过Firefox的不安全证书警告

Ruby 无法使用Watir绕过Firefox的不安全证书警告,ruby,selenium,selenium-webdriver,watir,geckodriver,Ruby,Selenium,Selenium Webdriver,Watir,Geckodriver,使用Firefox驱动程序和Watir 6.2.0,我似乎无法忽略任何证书警告。这是意外的行为,还是我没有正确使用API 示例代码: require 'watir' profile = Selenium::WebDriver::Firefox::Profile.new profile.assume_untrusted_certificate_issuer = false browser = Watir::Browser.new(:firefox, :profile => profile

使用Firefox驱动程序和Watir 6.2.0,我似乎无法忽略任何证书警告。这是意外的行为,还是我没有正确使用API

示例代码

require 'watir'

profile = Selenium::WebDriver::Firefox::Profile.new
profile.assume_untrusted_certificate_issuer = false

browser = Watir::Browser.new(:firefox, :profile => profile)

browser.goto 'https://self-signed.badssl.com/
/Users/bshannon/.rvm/gems/ruby-2.4.0/gems/selenium-webdriver-3.3.0/lib/selenium/webdriver/remote/response.rb:69:in `assert_ok': Selenium::WebDriver::Error::UnknownError
    from /Users/bshannon/.rvm/gems/ruby-2.4.0/gems/selenium-webdriver-3.3.0/lib/selenium/webdriver/remote/response.rb:32:in `initialize'
    from /Users/bshannon/.rvm/gems/ruby-2.4.0/gems/selenium-webdriver-3.3.0/lib/selenium/webdriver/remote/http/common.rb:83:in `new'
    from /Users/bshannon/.rvm/gems/ruby-2.4.0/gems/selenium-webdriver-3.3.0/lib/selenium/webdriver/remote/http/common.rb:83:in `create_response'
    from /Users/bshannon/.rvm/gems/ruby-2.4.0/gems/selenium-webdriver-3.3.0/lib/selenium/webdriver/remote/http/default.rb:107:in `request'
    from /Users/bshannon/.rvm/gems/ruby-2.4.0/gems/selenium-webdriver-3.3.0/lib/selenium/webdriver/remote/http/common.rb:61:in `call'
    from /Users/bshannon/.rvm/gems/ruby-2.4.0/gems/selenium-webdriver-3.3.0/lib/selenium/webdriver/remote/w3c_bridge.rb:620:in `execute'
    from /Users/bshannon/.rvm/gems/ruby-2.4.0/gems/selenium-webdriver-3.3.0/lib/selenium/webdriver/remote/w3c_bridge.rb:126:in `get'
    from /Users/bshannon/.rvm/gems/ruby-2.4.0/gems/selenium-webdriver-3.3.0/lib/selenium/webdriver/common/navigation.rb:32:in `to'
    from /Users/bshannon/.rvm/gems/ruby-2.4.0/gems/watir-6.2.0/lib/watir/browser.rb:78:in `goto'
    from /Users/bshannon/Desktop/test.rb:8:in `<main>'
意外结果

require 'watir'

profile = Selenium::WebDriver::Firefox::Profile.new
profile.assume_untrusted_certificate_issuer = false

browser = Watir::Browser.new(:firefox, :profile => profile)

browser.goto 'https://self-signed.badssl.com/
/Users/bshannon/.rvm/gems/ruby-2.4.0/gems/selenium-webdriver-3.3.0/lib/selenium/webdriver/remote/response.rb:69:in `assert_ok': Selenium::WebDriver::Error::UnknownError
    from /Users/bshannon/.rvm/gems/ruby-2.4.0/gems/selenium-webdriver-3.3.0/lib/selenium/webdriver/remote/response.rb:32:in `initialize'
    from /Users/bshannon/.rvm/gems/ruby-2.4.0/gems/selenium-webdriver-3.3.0/lib/selenium/webdriver/remote/http/common.rb:83:in `new'
    from /Users/bshannon/.rvm/gems/ruby-2.4.0/gems/selenium-webdriver-3.3.0/lib/selenium/webdriver/remote/http/common.rb:83:in `create_response'
    from /Users/bshannon/.rvm/gems/ruby-2.4.0/gems/selenium-webdriver-3.3.0/lib/selenium/webdriver/remote/http/default.rb:107:in `request'
    from /Users/bshannon/.rvm/gems/ruby-2.4.0/gems/selenium-webdriver-3.3.0/lib/selenium/webdriver/remote/http/common.rb:61:in `call'
    from /Users/bshannon/.rvm/gems/ruby-2.4.0/gems/selenium-webdriver-3.3.0/lib/selenium/webdriver/remote/w3c_bridge.rb:620:in `execute'
    from /Users/bshannon/.rvm/gems/ruby-2.4.0/gems/selenium-webdriver-3.3.0/lib/selenium/webdriver/remote/w3c_bridge.rb:126:in `get'
    from /Users/bshannon/.rvm/gems/ruby-2.4.0/gems/selenium-webdriver-3.3.0/lib/selenium/webdriver/common/navigation.rb:32:in `to'
    from /Users/bshannon/.rvm/gems/ruby-2.4.0/gems/watir-6.2.0/lib/watir/browser.rb:78:in `goto'
    from /Users/bshannon/Desktop/test.rb:8:in `<main>'
试试这个:

profile.accept_untrusted_certificates = true
profile.assume_untrusted_certificate_issuer = true
您可以通过以下方式完成此操作。在上有其他文档


如果您使用的是Chrome浏览器,则需要执行以下操作:

Watir::Browser.new(:chrome, switches: ['--ignore-certificate-errors'])

尝试此操作时,我收到以下错误:'':未定义的方法'accept_untrusted_certificates='for#(NoMethodError)能否尝试:webdriver_accept_untrusted_certs=true webdriver_astake_untrusted_issuer=true不幸的是,这也没有什么好运气。关于这个问题,你还有其他想法吗?根据我在文档中读到的内容,它似乎应该默认信任自签名证书?我唯一的另一个建议是将木偶功能设置为trueDon't use Geckodriver,它有很多问题,所以将Firefox降级到47.0.2并使用传统firebox驱动程序,一切正常。该功能在w3c规范和geckodriver自述文件中定义。ruby中的功能只是json camelCase功能的snake_case版本,所以在使用geckodriver时,您应该尝试使用
Selenium::WebDriver::Remote::W3Capability
。这在将来会改变,但现在就是这样