如何在Windows身份验证中传递URL中的特殊字符?

时间:2018-04-18 12:12:00

标签: python selenium

要处理Windows身份验证,处理此类方案的一种方法是通过URL本身传递凭据,如下所示

driver.get('http://username:password@abc.com')

但在我的情况下,因为密码包含特殊字符,例如密码@ 123'所以现在代码包含双重特殊字符' @'如下图所示

driver.get('http://username:password@123@abc.com')

我尝试更换' @'与'%40'使用url编码器/解码器,但它不起作用。我正在使用python selenium,知道如何处理这种情况吗?

3 个答案:

答案 0 :(得分:1)

一个简单的原始 字符串将完成这项工作 note 我使用三重引号只是为了逃避任何'"可能出错。

driver.get(r'''http://username:password@123@abc.com''')

答案 1 :(得分:0)

请您尝试使用以下语法:

String url =  http://username:password%40123@abc.com;
driver.get(url);

在其中一个应用程序中,密码中有多个@字符。我只是逃避@角色。例如

URL: http://username:password@#@@sample.com
Encoded_URL:  http://username:password%40%23%40@sample.com

然后尝试浏览已编码的网址。

driver.get(Encoded_URL);

对我来说,它工作正常。如果它适合你,请告诉我。

答案 2 :(得分:0)

如果您的用户名为“shoaib”且密码为akhtar@123,则您的.get()调用应为:

driver.get('http://shoaib:akhtar%40123@abc.com')