python Selenium AttributeError с send_keys - PullRequest
       0

python Selenium AttributeError с send_keys

1 голос
/ 08 апреля 2020

Я создаю instagram бота, мне удалось автоматически ввести имя пользователя автоматически, однако я получаю ошибку типа атрибута, когда хочу проверить параметры пароля.

Кроме того, мой аргументы имени пользователя заполняются в поле имени пользователя в IG, но пароль просто отображается пустым.

поле пароля не заполняется:

enter image description here

Ошибка атрибута для sendkeys

self.driver.find_element_by_name('username').send_keys(self.username).send_keys(self.username)
    AttributeError: 'NoneType' object has no attribute 'send_keys'



from selenium import webdriver
import os
import time

from selenium.webdriver.chrome.options import Options



class InstagramBot:

    def __init__(self, username, password):
        self.username = username
        self.password = password

        #get around automated testing
        chrome_options = Options()
        chrome_options.add_argument("--disable-infobars")
        #end of automated testing

        self.driver = webdriver.Chrome('./chromedriver')

        self.login()
    def login(self):
        self.driver.get('https://www.instagram.com/accounts/login/')
        self.driver.implicitly_wait(20)
        self.driver.find_element_by_name('username').send_keys(self.username).send_keys(self.username)

        self.driver.find_element_by_name('password').send_keys(self.password).send_keys(self.password)
        self.driver.find_element_by_xpath('//*[@id="react-root"]/section/main/div/article/div/div[1]/div/form/div[4]').click()


if __name__ == "__main__":

    ig_bot = InstagramBot('test', 'test')

1 Ответ

0 голосов
/ 08 апреля 2020

Я вижу, что у вас есть несколько ключей отправки для имени пользователя и пароля, попробуйте следующее

def login(self):
    self.driver.get("https://www.instagram.com/accounts/login/")
    time.sleep(3)

    email_input = self.driver.find_elements_by_css_selector("form input")[0]
    password_input = self.driver.find_elements_by_css_selector("form input")[1]

    email_input.send_keys(self.username)
    password_input.send_keys(self.password)
    password_input.send_keys(Keys.ENTER)

, убедитесь, что добавили следующее с вашим импортом

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