我正在开发一个个人项目来制作一个python脚本来登录一个站点并为我做一些任务,我决定使用Selenium web驱动程序。目前我被困在登录部分。
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怎么可以' t?
答案 0 :(得分:4)
有多个输入div
。您感兴趣的是位于id="home-login"
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)
内的最右侧登录表单中的那个:
self.favouriteStateChanged()
答案 1 :(得分:-1)
我仍然不确定为什么有些网站有很多具有相同名称和身份的字段...但由于我只对可见的字段感兴趣,所以我做了这个小功能来获得正确的字段。
Text::CSV
self.sel是Selenium驱动程序对象。