如果元素无法找到,可能的原因是什么?

本贴最后更新于 821 天前,其中的信息可能已经斗转星移

1、元素定位的表达试写的不正确(也有可能是xpath用了能动态变化的属性)

处理方法:检查表达式,可以先在查找元素页面先把元素查找出来,尽量不要在元素页面直接通过复制xpath;辨别能动态变化的属性,比如表达式里面包含不规则的数字或者字母,替换使用不能动态变化的属性

2、元素可能还没来得及被加载出来

处理方法:可以使用等待,看情况使用强制等待,隐形等待,和显性等待

(为提高自动化的效率,一般使用强制等待的较少(不建议使用),考虑先用隐形等待,如果还是加载不出来,就使用显性等待)

3、可能元素不在当前页面,比如需要定位的元素在iframe里面,或者在alert弹窗里面或者另一个窗口里面

处理方式:如果是iframe,需要先切换到iframe里面再去定位元素;如果是alert,也是需要先定位到alert点击后,再去定位元素,另一个窗口也是需要先切换到另一个窗口的

# 先找到 iframe 这个元素,然后把 iframe 这个元素对象传进函数
# driver.switch_to.frame('myframe')
# 先切换到 alert 页面,然后点击 alert 确认
driver.switch_to.alert.accept()
# 切换窗口的参数:窗口的名称
driver.switch_to.window(driver.window_handles[-1])
3 操作
13720245816 在 2022-08-24 14:09:40 更新了该帖
13720245816 在 2022-08-23 22:22:45 更新了该帖
13720245816 在 2022-08-23 22:22:07 更新了该帖
回帖
请输入回帖内容 ...