在尝试通过这种结构username:password@siteurl.com
使用默认的Selenium身份验证时,我遇到一个非常具体的问题
所以这是一个问题:如果我使用这样的密码"''asd'asd';123asd'
(带有特定符号),traceback
会说URL
是不正确的。但是,如果密码仅包含数字和字母,则一切正常。
以下是一个可以正常运行的代码示例,但对于我的示例,我需要在密码中填充许多特定的符号,并且我无权对其进行更改。
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")
答案 0 :(得分:1)
对于基本身份验证,如果密码包含符号,例如"''asd'asd';123asd'
您需要将 string 转换为 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)