我正在做一个个人项目,制作一个 python 脚本来登录网站并为我做一些任务,我决定使用 Selenium 网络驱动程序。目前我部分停留在日志上。
driver = webdriver.Chrome()
driver.get("https://pucatrade.com")
puca_username = "example@username"
user_fieldID = "login"
user_fieldelement = driver.find_element_by_id(user_fieldID)
user_fieldelement.send_keys(puca_username)
但是,它在 send_keys 调用中给了我 selenium.common.exceptions.ElementNotVisibleException: Message: element not visible
。我知道 find_element_by_id 找到了该元素,因为我已经使用 print user_fieldelement.get_attribute('id'),
进行了测试,它会打印登录信息。那么如果 find_element_by_id 可以找到元素,为什么 send_keys 不能?
最佳答案
多个输入具有 id="login"
。您对位于 id="home-login"
的 div
中最右边的登录表单感兴趣:
form = driver.find_element_by_id("home-login")
# login
user_fieldelement = form.find_element_by_id(user_fieldID)
user_fieldelement.send_keys(puca_username)
# password
passwd_fieldelement = form.find_element_by_id(passwd_fieldID)
user_fieldelement.send_keys(puca_password)
关于python - Selenium webdriver - 可以找到元素但不可见?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32462116/