Неожиданная ошибка токена для .send_keys в веб-очистке селена - PullRequest
0 голосов
/ 11 апреля 2020

Я относительно новичок в python, поэтому прошу прощения за любые случаи ошибок ладьи ie ... Я следовал учебному пособию по созданию инстаграм-робота для поиска в сети и не могу решить эта конкретная ошибка. Это происходит для команды .send_keys в .send_keys(username) и .send_keys(password). Я получаю ошибку: unexpected token 'send_keys'Python(parser-16)

Это также создает проблему для self внизу, который получает предупреждение: Undefined variable: 'self'Python(undefined-variable). Эта проблема устраняется, когда я закомментирую ошибку токена.

Я не знаю, связано ли это с отступами или чем-то, но я точно следовал учебному пособию, и его работы без проблем

from selenium import webdriver
from time import sleep

class InstaBot:
    def __init__(self, username, password):
        self.driver = webdriver.Chrome()
        self.driver.get("https://instagram.com")
        sleep(2)
        self.driver.find_element_by_xpath("//input[@name=\"username\"]")
            .send_keys(username)
        self.driver.find_element_by_xpath("//input[@name=\"password\"]")
            .send_keys(password)


InstaBot('nomadsvalley', '*******')

Если бы кто-нибудь мог помочь, это было бы здорово. Спасибо

1 Ответ

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

Пожалуйста, обратитесь к рабочему решению:

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait as Wait

class bot:

    def __init__(self):
        self.driver = webdriver.Chrome(executable_path=r"C:\New folder\chromedriver.exe")

    def intagramLogin(self):
        driver = self.driver
        self.driver.get("https://instagram.com")

        WebDriverWait(self.driver, 15).until(EC.presence_of_element_located((By.NAME, "username"))).send_keys("username")
        WebDriverWait(self.driver, 15).until(EC.presence_of_element_located((By.NAME, "password"))).send_keys("username")
        WebDriverWait(self.driver, 30).until(
            EC.element_to_be_clickable((By.XPATH, "//*[contains(text(), 'Log In')]"))).click()

        driver.close()

if __name__ == "__main__":
    bot = bot()
    bot.intagramLogin()

Выход:

enter image description here

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