学习selenium对话框处理出现错误
a.py内容:
from selenium import webdriver
import time
driver = webdriver.Firefox()
driver.get(“http://www.baidu.com/”)
time.sleep(3)
#点击登录链接
driver.find_element_by_name(“tj_login”).click()
#通过二次定位找到用户名输入框
div=driver.find_element_by_class_name(“tang-content”).find_element_by_name(“userName”)
div.send_keys(“username”)
#输入登录密码
driver.find_element_by_name(“password”).send_keys(“password”)
#点击登录
driver.find_element_by_id(“TANGRAM__PSP_10__submit”).click()
driver.quit()
运行a.py的时候出现 ElementNotInteractableException: Message: Element <a class=”lb” href=”https://passport.baidu.com/v2/?login&tpl=mn&u=http%3A%2F%2Fwww.baidu.com%2F&sms=5″ name=”tj_login”> could not be scrolled into view 不能跳出对话框
经网上查找是因为不可见元素定位原因,某些情况元素的visibility为hidden或者display属性为none,我们在页面看不到但是实际是存在页面的一些元素,这时候用 is_displayed() 来判断
改过a.py内容
#coding=utf-8
from selenium import webdriver
import time
driver = webdriver.Firefox()
driver.get(“http://www.baidu.com/”)
#点击登录链接
time.sleep(3)
element0=driver.find_elements_by_name(“tj_login”)
for ele0 in element0:
if ele0.is_displayed():
ele0.click()
#通过二次定位找到用户名输入框
div=driver.find_element_by_class_name(“tang-content”).find_element_by_name(“userName”)
div.send_keys(“username”)
#输入登录密码
driver.find_element_by_name(“password”).send_keys(“password”)
#点击登录
driver.find_element_by_id(“TANGRAM__PSP_10__submit”).click()
driver.quit()