Skip to main content
 首页 » 编程设计

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

2024年08月25日41langtianya

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