用于selenium-webdriver的HTTP Basic Auth和Proxy(ruby绑定)

时间:2009-12-22 13:31:39

标签: ruby selenium integration-testing webdriver

我正在尝试使用selenium-webdriver [ruby bindings] [1]来访问需要配置代理的内部网站,以及HTTP Basic Auth。

我目前有:

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

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

有什么建议吗?

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

在WebDriver(或Selenium)的浏览器上完全支持此功能之前,备用选项是集成w /桌面GUI自动化工具,桌面GUI工具将自动化HTTP身份验证部分。你可以找到这个或文件下载的一些例子,如果你谷歌搜索“Selenium AutoIt”等内容上传。

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

答案 2 :(得分:0)

我尝试使用AutoIt的方法,它工作正常,直到Selenium 2.18.0, 因为他们实现了UnhandledAlertException,它将很快被抛出 弹出代理登录对话框。 如果你试图捕获它,你最终得到一个driver = null,你需要循环 尝试创建驱动程序并信任您的AutoIt脚本以杀死窗口。

答案 3 :(得分:0)

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

有关详细信息,请查看此帖子 https://devopsqa.wordpress.com/2018/08/05/handle-basic-authentication-in-selenium-for-chrome-browser/