如何在隐藏 ID 的页面上用 selenium 填充用户名和密码?

How to fill username and password with selenium on a page where IDs are hidden?

我正在尝试用 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()

页面的图像如下所示:

您从页面中选择了错误的 ID。您选择的是 type 属性而不是 ID。
您可以使用以下代码在页面上操作(已选择正确的 ID)并对第一个元素应用显式等待:

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()