Как заполнить имя пользователя и пароль селеном на странице, где скрыты идентификаторы? - PullRequest
0 голосов
/ 23 марта 2020

Я пытаюсь заполнить имя пользователя и пароль кодом python. Хотя код успешно открывает страницу, он не заполняет раздел имени пользователя и пароля. Я прилагаю код ниже:

from selenium import webdriver
import time
from selenium.webdriver.chrome.options import Options

options = webdriver.ChromeOptions()
options.add_argument('--ignore-ssl-errors=yes')
options.add_argument('--ignore-certificate-errors')
options.add_argument('--allow-running-insecure-content')
driver = webdriver.Chrome(options=options)

driver.get('https://120.72.92.102:10443/remote/login?lang=en')
username = driver.find_element_by_id("Name")
password = driver.find_element_by_id("password")

username.send_keys("YourUsername")
password.send_keys("PassworD")

driver.find_element_by_name("Login").click()

Изображение страницы выглядит следующим образом: enter image description here

1 Ответ

2 голосов
/ 23 марта 2020

Вы выбрали неправильные идентификаторы со страницы. Вы выбрали атрибут type, а не идентификаторы.
Вы можете использовать приведенный ниже код для работы со страницей (выбрал правильные идентификаторы) и применили явное ожидание к первому элементу:

from selenium import webdriver
import time
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

options = webdriver.ChromeOptions()
options.add_argument('--ignore-ssl-errors=yes')
options.add_argument('--ignore-certificate-errors')
options.add_argument('--allow-running-insecure-content')
driver = webdriver.Chrome(options=options)

driver.get('https://120.72.92.102:10443/remote/login?lang=en')
WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.ID, "username")))

username = driver.find_element_by_id("username")
password = driver.find_element_by_id("credential")

username.send_keys("YourUsername")
password.send_keys("PassworD")

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