Получение «NoSuchElementException», когда я пытался включить HTML-информацию о кнопке входа в систему при создании бота - PullRequest
0 голосов
/ 06 декабря 2018

Я пытался внедрить простого бота на python, который увеличит число подписчиков в Instagram.Это то, что я пытался -> https://towardsdatascience.com/increase-your-instagram-followers-with-a-simple-python-bot-fde048dce20d Во время процесса я установил chromedriver, как указано в вышеупомянутом посте, и включил его путь в webdriver.chrome.Я собрал HTML-элемент (селектор копий) кнопки входа в систему в Instagram и вставил его в метод find_element_by_name, но получаю сообщение об ошибке «NoSuchElementException: нет такого элемента: невозможно найти элемент: {» method »:« name"," selector ":" #act-root> section> main> div> article> div> div: nth-child (1)> div> form> div: nth-child (3)> button "} (информация о сеансе): chrome = 70.0.3538.110) (Информация о драйвере: chromedriver = 2.44.609538 (b655c5a60b0b544917107a59d4153d4bf78e1b90), платформа = Windows NT 10.0.17134 x86_64) "

Пожалуйста, найдите мой код ниже и помогите мне отсортировать эту ошибку.Заранее спасибо

import pandas as pd
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from time import sleep, strftime
from random import randint

webdriver=webdriver.Chrome(executable_path="C:\\Users\\Vishal\\chromedriver.exe")

sleep(2)

webdriver.get('https://www.instagram.com/accounts/login/?source=auth_switcher')

sleep(3)

username = webdriver.find_element_by_name('#react-root > section > main > div > article > div > div:nth-child(1) > div > form > div:nth-child(3) > button ')

1 Ответ

0 голосов
/ 06 декабря 2018

Добавьте пару ожиданий для обеспечения видимости и того, что можно войти в систему.Используйте более короткий селектор для целевой кнопки.Обратите внимание, что вам нужно добавить значения в первые два поля входа в систему, чтобы кнопка была кликабельной.

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

url = 'https://www.instagram.com/accounts/login/?source=auth_switcher'
d = webdriver.Chrome()
d.get(url)
WebDriverWait(d,5).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "[name=username]"))).send_keys('bob')
d.find_element_by_css_selector('[name=password]').send_keys('builder')
WebDriverWait(d, 5).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "form div:nth-of-type(3)"))).click()
...