Я получаю ошибки, когда пытаюсь ввести имя пользователя и пароль с селеном, используя python - PullRequest
0 голосов
/ 17 марта 2020
from selenium import webdriver
from selenium.webdriver.common.keys import Keys


driver = webdriver.Chrome()
driver.get('https://cstutil.it.siu.edu/CSRfrontend/')

link = driver.find_element_by_link_text(
 '>>SSL Certificate Signing Request/C-S-C Authorization Submission<<')
link.click()

username = driver.find_element_by_id("userNameInput")
username.clear()
username.send_keys("")

password = driver.find_element_by_name("Password")
password.clear()
password.send_keys("")

login_button = driver.find_element_by_id("submitButton")
login_button.click()        

Вот мой код, я пытаюсь ввести имя пользователя и пароль с помощью Selenium. Но я получаю эту ошибку:

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"[id="userNameInput"]"}

Ответы [ 2 ]

0 голосов
/ 17 марта 2020

эта ошибка отображается из-за открытия новой вкладки. После нажатия на ссылку откройте ее в новой вкладке. Пожалуйста, используйте этот код, он будет работать правильно.

from selenium import webdriver
from selenium.webdriver.common.keys import Keys


driver = webdriver.Chrome()
driver.get('https://cstutil.it.siu.edu/CSRfrontend/')

link = driver.find_element_by_link_text(
 '>>SSL Certificate Signing Request/C-S-C Authorization Submission<<')
link.click()
#Switch previous tab to new tab
driver.switch_to.window(driver.window_handles[1]) 
username = driver.find_element_by_id("userNameInput")
username.clear()
username.send_keys("")

password = driver.find_element_by_name("Password")
password.clear()
password.send_keys("")

login_button = driver.find_element_by_id("submitButton")
login_button.click()  
0 голосов
/ 17 марта 2020

Проблема с первым кликом. Когда выполняется строка ниже, она фактически открывает новую вкладку.

link = driver.find_element_by_link_text(
 '>>SSL Certificate Signing Request/C-S-C Authorization Submission<<')
link.click()

Итак, вам нужно переключиться на текущее новое окно, я добавил 2 строки кода, посмотрите.

window_after = driver.window_handles[1]
driver.switch_to.window(window_after)

Полный код:

from selenium import webdriver
import time
driver = webdriver.Chrome(executable_path='D:\chromedriver.exe')

driver.get(
 'https://cstutil.it.siu.edu/CSRfrontend/')
time.sleep(2)

link = driver.find_element_by_link_text(
 '>>SSL Certificate Signing Request/C-S-C Authorization Submission<<')
link.click()
time.sleep(2)
window_after = driver.window_handles[1]
driver.switch_to.window(window_after)
username = driver.find_element_by_id("userNameInput")
username.clear()
username.send_keys("")
time.sleep(2)
password = driver.find_element_by_name("Password")
password.clear()
password.send_keys("")
time.sleep(2)
login_button = driver.find_element_by_id("submitButton")
login_button.click()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...