Python 当用户名和密码包含特殊字符时通过 Selenium 进行 HTTP 基本身份验证
Python HTTP Basic Authentication through Selenium when username and password contains special characters
我在使用这种结构尝试使用默认的 Selenium 身份验证时遇到了一个非常具体的问题 username:password@siteurl.com
所以这里有一个问题: 如果我使用这样的密码 "''asd'asd';123asd'
(带有特定符号)traceback
会说 URL
不正确。但如果密码只是数字和字母——一切都OK。
下面是一个可以正常工作的代码示例,但对于我的示例,我需要用很多特定符号填充密码,而且我无权更改它。
import unittest
from selenium import webdriver
class LoggedTest(unittest.TestCase):
@classmethod
def setUp(inst):
# create a new Chrome session """
inst.driver = webdriver.Chrome()
inst.driver.implicitly_wait(30)
inst.driver.maximize_window()
# navigate to the application home page """
inst.driver.get("http://admin:admin@theinternet.herokuapp.com/basic_auth")
对于基本身份验证,如果密码包含符号,例如"''asd'asd';123asd'
您需要 translate 将 字符串 转换为 UTF。例如:
username = "%21%40user" #stands for !@user
password = "%0D%0Apass" #stands for ^&pass
webpage = "something.url.com"
现在您可以使用:
url = 'http://{}:{}@{}'.format(username, password, webpage)
driver.get(url)
我在使用这种结构尝试使用默认的 Selenium 身份验证时遇到了一个非常具体的问题 username:password@siteurl.com
所以这里有一个问题: 如果我使用这样的密码 "''asd'asd';123asd'
(带有特定符号)traceback
会说 URL
不正确。但如果密码只是数字和字母——一切都OK。
下面是一个可以正常工作的代码示例,但对于我的示例,我需要用很多特定符号填充密码,而且我无权更改它。
import unittest
from selenium import webdriver
class LoggedTest(unittest.TestCase):
@classmethod
def setUp(inst):
# create a new Chrome session """
inst.driver = webdriver.Chrome()
inst.driver.implicitly_wait(30)
inst.driver.maximize_window()
# navigate to the application home page """
inst.driver.get("http://admin:admin@theinternet.herokuapp.com/basic_auth")
对于基本身份验证,如果密码包含符号,例如"''asd'asd';123asd'
您需要 translate 将 字符串 转换为 UTF。例如:
username = "%21%40user" #stands for !@user
password = "%0D%0Apass" #stands for ^&pass
webpage = "something.url.com"
现在您可以使用:
url = 'http://{}:{}@{}'.format(username, password, webpage)
driver.get(url)