如何使用 Selenium 处理 Firefox 中的安全警报

2024-04-17

我使用 selenium-webdriver 和 ruby​​ 来编写自动化测试。

Chrome 和 chromedriver 二进制文件工作得很好,但我在 Firefox 上遇到了一个与浏览器配置相关的问题,这导致我的测试失败,而 Chrome 则通过了。

在 Firefox 中执行测试时,有时我会收到一条带有以下消息的警报:

尽管此页面已加密,但您输入的信息是 通过未加密的连接发送,并且可以很容易地被读取 第三方

它破坏了执行。有没有办法在最新的 Firefox 版本(10+)中禁用此警告或使用 Selenium 处理此行为?


在寻找解决方案的过程中,我想我可能发现了 Capybara (v1.1.2) 中的一个错误。

我设法使用以下方法解决了这个问题,而不是使用click从水豚(这不允许我捕获异常),我开始使用click来自 selenium-webdriver 的方法。

看来当 Firefox 触发此警报框时,会出现一个带有消息的字符串

尽管此页面已加密,但您输入的信息是 通过未加密的连接发送,并且可以很容易地被读取 第三方

被返回作为结果object.native.click,否则字符串

ok

被返回。

# Define the click method in ruby and call it when you're executing a 'click'

  # Public: Click the object.
  #
  # object - Capybara::Node::Element object to click.
  def click object
    return_string = object.native.click
    check_firefox_alertbox if return_string == "ok"
  end

  def check_firefox_alertbox
    if @current_browser == :firefox 
     @session.driver.browser.switch_to.alert.accept
    end
  rescue Exception => e
    puts e
  end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Selenium 处理 Firefox 中的安全警报 的相关文章

随机推荐