遭遇selenium定位元素大坑后总结

遭遇selenium定位元素大坑后总结:NoSuchElementException: Message: no such element: Unable to locate element:

 

1.检查是不是元素可变(如动态id)

 

2.元素定位方式是不是有错误

 

3.页面重新渲染,变成旧的元素,再点击肯定会失败
常见场景:1)循环点击删除按钮、2)点击页面按钮,页面重新渲染


4.页面嵌套了iframe
#参数可以是id属性、name、直接定位到iframe的webElement。这里g_frame是id属性
driver.switch_to.frame('g_frame')
延伸:
切换到主HTML:
driver.switch_to.default_content()
返回上一层frame:
driver.switch_to.parent_frame()

 

5.页面可能切换到新的窗口
#切换webview到新的窗口

# 保存主窗口的handle
mainwindow=self.driver.current_window_handle
# 打开一个新的web页面
for one in driver.window_handles:
driver.switch_to.window(one)
if '下发学习任务' in self.driver.title:
break
#进行一些操作后
#回到主窗口
driver.switch_to.window(mainwindow)

 

6.页面加载太慢,还没有加载出页面,就开始找元素

 

posted @ 2021-07-29 16:46  cforcnb  阅读(160)  评论(0)    收藏  举报