Базовая аутентификация Python HTTP через Selenium, когда имя пользователя и пароль содержат специальные символы - PullRequest
0 голосов
/ 19 ноября 2018

У меня очень специфическая проблема при попытке использовать Selenium auth по умолчанию с использованием этой конструкции username:password@siteurl.com
Так вот проблема: если я использую такой пароль как "''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")

1 Ответ

0 голосов
/ 19 ноября 2018

Для Базовая аутентификация , если Пароль содержит символов например. "''asd'asd';123asd' вам нужно перевести строку в 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)
...