在 url 中嵌入凭据以使用 selenium webdriver 加载网站

Posted

技术标签:

【中文标题】在 url 中嵌入凭据以使用 selenium webdriver 加载网站【英文标题】:Embedding credentails in url to load website using selenium webdriver 【发布时间】:2017-08-25 09:55:32 【问题描述】:

我需要加载弹出身份验证的 URL。我使用http://username:password@exampl.com格式通过chrome浏览器上的selenium webdriver访问网站。

但是这个支持似乎没有在最新的chrome浏览器中被删除,所以加载url不成功。浏览器一直加载很长时间,服务器没有响应。

是否有任何替代方法可以通过 selenium webdrier 克服身份验证弹出窗口?我知道我们可以使用 sikui、autoit 等。但我需要在许多平台上运行 相同的代码 - Win/Mac/mobile/tablet。

所以请告诉我们如何克服这个问题。

【问题讨论】:

您使用的是哪个版本的硒?另外,使用的 chromedriver 的版本。? 在安卓设备上使用 Chrome 浏览器版本 59。 Selenium 服务器 2.53.1 和 chrome 驱动程序 2.31 【参考方案1】:

我正在使用 Selenium 3.4.0 和 Chromedriver 2.31,加载带有身份验证凭据的 URL 对我来说很好。

【讨论】:

在安卓设备上使用 Chrome 版本 59。 Selenium 服务器 2.53.1 和 chrome 驱动程序 2.31 我可以知道您使用的 chrome 浏览器版本 我在 Chrome 59 和 60 上都进行了测试。我认为您应该将 Selenium 升级到 3.4【参考方案2】:

据我所知,chrome 60.x 版本的 chorme stop URL 身份验证。

您可以尝试以下代码或降级您的 chrome 版本

警报方法authenticateUsing() 允许您跳过 Http 基本身份验证框。

WebDriverWait wait = new WebDriverWait(driver, 10);      
Alert alert = wait.until(ExpectedConditions.alertIsPresent());     
alert.authenticateUsing(new UserAndPassword(username, password));

希望对你有帮助:)

【讨论】:

以上是关于在 url 中嵌入凭据以使用 selenium webdriver 加载网站的主要内容,如果未能解决你的问题,请参考以下文章

ElementNotVisibleException:Python + Selenium,W eb上的登录凭据

阻止 URL 包含嵌入凭据的子资源请求的解决方案

将带有嵌入式凭据 URL 的 cURL 请求转换为获取请求 [重复]

在 iOS 代码中嵌入 API 凭据

更改新URL的Selenium驱动程序

从URL中提取数据以在selenium测试中使用