Selenium вставка случайных букв из пароля - PullRequest
0 голосов
/ 25 января 2020

Я пытаюсь создать бота, использующего Selenium, который будет входить в мою учетную запись, получать доходы и результаты загрузки и генерировать репорты. Я застрял при входе в систему, так как в первый раз мне нужно вставлять просто случайно выбранные буквы из моего пароля, а не вставлять целиком. Пока мой код не существует, так как я хочу сначала войти в систему, прежде чем я начну писать следующие функции.

class BankAccountLogin():
    def __init__(self):
        self.driver = webdriver.Chrome()
    def login(self, login, password):
        self.driver.get("https://system.aliorbank.pl/sign-in")
        sleep(1)
        self.driver.find_element_by_id("login").send_keys(login, "\n")

    bank_app = BankAccountLogin()
    bank_app.login(login, password)

Область пароля выглядит следующим образом и изменяется после каждой попытки входа в систему. enter image description here

HTML5 кодирование этой страницы выглядит следующим образом:

  • для не редактируемых полей в этом случае поле № 1: enter image description here

  • для редактируемого поля, в котором я должен использовать межбуквенное обозначение в этом случае № 2: enter image description here

Я пытался искать помощь везде, где не мог найти онлайн Любой, кто пытается решить эту проблему. Попытка обратиться к этим буквенным областям пароля как к

self.driver.find_element_by_css_selector("input[type='password']").send_keys("x")

привела к ошибке:

AttributeError: у объекта 'list' нет атрибута 'send_keys'

Может кто-нибудь пожалуйста помочь мне с этим? Спасибо

1 Ответ

0 голосов
/ 25 января 2020

Почему бы вам не выполнить запрос по типу пароля, похоже, что это не изменится?

driver.find_element_by_css_selector("input[type='password']").send_keys("")

РЕДАКТИРОВАТЬ код выше вернет список obj, потому что из вашего кода HTML, есть куча элементов, которые используют тип пароля.

 import random
 list_obj = driver.find_element_by_css_selector("input[type='password']")
 passwords = ["psswd", "psswd2"]
 for element in list_obj:
    element.send_keys(random.choice(passwords))

ИЛИ, если вы хотите первый элемент

driver.find_element_by_css_selector("input[type='password']")[0].send_keys("")

Я не совсем понимаю, что вы хотите сделать, но я надеюсь, что это помогает вам. Удачного кодирования:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...