Войти используя Selenium Python? - PullRequest
0 голосов
/ 16 февраля 2020

Я не могу войти на этот сайт.

Это URL.

https://swayam.gov.in/azurelogin?continue= /

Что я пробовал:

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://swayam.gov.in/azurelogin?continue=/")
login_google_btn = driver.find_element_by_xpath('//*[@id="GoogleExchange"]')
login_google_btn.click()

Мне нужно войти в систему с помощью Google и, следовательно, необходимо нажать на эту кнопку.

Вывод:

raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate 
element: {"method":"xpath","selector":"//*[@id="next"]"}
(Session info: chrome=80.0.3987.106)

Затем я проверил отправку ключей в поля имени пользователя и пароля, но обнаружил похожую ошибку.

Что не так?

1 Ответ

1 голос
/ 16 февраля 2020

Кажется, он использует JavaScript для загрузки данных, и вам придется немного подождать, пока элементы на странице.

Вы можете использовать time.sleep(1) или driver.implicitly_wait(1) для ожидания 1 секунды.

from selenium import webdriver
#import time

driver = webdriver.Chrome()
driver.implicitly_wait(1)

driver.get("https://swayam.gov.in/azurelogin?continue=/")
#time.sleep(1)

#login_google_btn = driver.find_element_by_id('GoogleExchange')
login_google_btn = driver.find_element_by_xpath('//*[@id="GoogleExchange"]')
login_google_btn.click()

См. Do c Ожидание для других методов.

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

driver = webdriver.Chrome()
driver.get("https://swayam.gov.in/azurelogin?continue=/")

wait = WebDriverWait(driver, 10)
#login_google_btn = wait.until(EC.element_to_be_clickable((By.ID, 'GoogleExchange')))
login_google_btn = wait.until(EC.element_to_be_clickable((By.XPATH, '//*[@id="GoogleExchange"]')))
login_google_btn.click()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...