【发布时间】:2020-12-27 14:54:12
【问题描述】:
driver.find_element_by_id('username').send_keys('thisIsAString')
Selenium 可以输入密码字段,但不能输入用户名字段。我对它们都使用了相同的代码,但由于某种原因,用户名的行为很奇怪。
<input placeholder="Choose username" required="" name="username" messages="[object Object]" iframename="top" pattern=".{1,40}" id="username" class="input">
这是用户名字段的 HTML
任何帮助将不胜感激!
编辑:
代码:
from selenium import webdriver
import time
url = 'https://protonmail.com/signup'
driver = webdriver.Chrome('chromedriver')
driver.get(url)
time.sleep(2)
driver.find_element_by_class_name('panel-heading').click()
time.sleep(4)
driver.find_element_by_id('freePlan').click()
time.sleep(20)
driver.find_element_by_id('username').send_keys('thisIsAString')
time.sleep(1.5)
driver.find_element_by_id('password').send_keys('passwordForUser')
time.sleep(2)
driver.find_element_by_id('passwordc').send_keys('passwordForUser')
time.sleep(2)
driver.find_element_by_class_name('signUpProcess-btn-create').click()
time.sleep(1)
driver.find_element_by_id('confirmModalBtn').click()
错误消息:selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"id","selector":"username"}(第 21 行)
【问题讨论】:
-
很难说。也许你可以提供一些代码。是否显示任何错误消息?也许它最后就像缺少分号一样简单。
-
加载页面时,用户名输入字段的加载速度不如密码字段。我强烈认为问题在于输入字段尚未加载,但代码已经在访问它。在访问其内容之前,请确保您的页面已完全加载。
标签: python html selenium browser-automation