【问题标题】:HTTP Basic Auth and Proxy for selenium-webdriver (ruby bindings)用于 selenium-webdriver(ruby 绑定)的 HTTP 基本身份验证和代理
【发布时间】:2009-12-22 13:31:38
【问题描述】:

我正在尝试使用 selenium-webdriver [ruby bindings][1] 访问需要配置代理和 HTTP 基本身份验证的内部网站。

我目前有:

  require "selenium-webdriver"
  driver = Selenium::WebDriver.for :firefox
  driver.navigate.to "http://my-internal-site.com"

但是由于代理和 http 身份验证问题,这失败了。如果我将我的用户名和密码添加到 URL(即http://username:password@site.com),我可以在另一个不需要代理的站点上进行基本身份验证,但这似乎不是一个理想的解决方案。

有什么建议吗?

【问题讨论】:

    标签: ruby selenium integration-testing webdriver


    【解决方案1】:

    不幸的是,http://username:password@site.com 一直是标准的做法,但越来越多的浏览器阻止了这种做法。 BrowserMob 的 Patrick Lightbody 在blog 公司讨论了他们如何让它工作。

    【讨论】:

    【解决方案2】:

    在 WebDriver(或 Selenium)的浏览器完全支持此功能之前,替代选项是集成桌面 GUI 自动化工具,其中桌面 GUI 工具将自动化 HTTP 身份验证部分。如果您在谷歌上搜索“Selenium AutoIt”等内容,您可能会找到一些示例或文件下载、上传。

    对于跨平台解决方案,将 AutoIt 替换为 Sikuli 或类似的东西。

    【讨论】:

      【解决方案3】:

      我尝试了 AutoIt 的方法,直到 Selenium 2.18.0,它都运行良好, 因为他们实现了UnhandledAlertException,很快就会抛出 当代理登录对话框弹出时。 如果你试图抓住它,你最终会得到一个 driver=null,你需要循环 尝试创建驱动程序并信任您的 AutoIt 脚本以杀死窗口。

      【讨论】:

        【解决方案4】:

        如果您使用Google-Chrome,请尝试创建自定义扩展并通过ChromeOptions 导入。它支持http(s),而Chrome 中的browsermob_proxy 不支持。在重定向测试的情况下,这是目前唯一可以帮助您的方法...

        详情请查看本帖 https://devopsqa.wordpress.com/2018/08/05/handle-basic-authentication-in-selenium-for-chrome-browser/

        【讨论】:

          猜你喜欢
          • 2022-08-19
          • 2013-10-18
          • 1970-01-01
          • 2016-03-01
          • 2017-11-26
          • 1970-01-01
          • 1970-01-01
          • 2012-07-19
          • 1970-01-01
          相关资源
          最近更新 更多