python - Selenium webdriver - 可以找到元素但不可见?

标签 python selenium selenium-webdriver webdriver

我正在做一个个人项目,制作一个 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/

相关文章:

python - pagerank Networkx 与 iGraph 的结果不一致

python - 为什么 text、innerText、innerHTML 在 selenium 中返回空

python - 为 torch 张量赋值

python - 使用 python 从 axigen 服务器读取电子邮件

Python Selenium (Chrome Webdriver) - 根据值定义 URL

python - 如果我的 chromedriver 与 chrome 版本不兼容,我该如何修复它?

selenium - Selenium 将 DOM 存储在哪里(如果有的话)?

java - 无法点击div标签元素

python - 取代用户在python 3.0中输入字符串后需要按回车

python - 如何通过selenium停止点击同一个按钮,而该按钮始终存在