Web 自动化——获取不到元素常见原因:
(1)元素属性为隐藏
处理办法:可通过调用JS脚本,处理隐藏元素,更改元素属性。eg:
# 如果界面有隐藏元素:可以调用js脚本,处理隐藏元素
js = "document.getElementById(\"normalLoginTab\").style.display='block';"
driver.execute_script(js)
(2)元素在iframe标签
处理办法:将driver切换到iframe标签。eg:
frame1 = driver.switch_to.frame(driver.find_element_by_xpath("//div[@id='loginDiv']/iframe"))
# 测试一下该元素能否获取
a = driver.find_element_by_id('account-box')
print(a)
(3)页面元素还未加载完全
处理办法:设置页面等待时间。eg:
from time import sleep
sleep(3)
-------------后续遇到其他原因再补充--------