微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

遭遇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.页面可能切换到新的窗口

  没有关注到页面跳转到新窗口了,定位元素,弄了差不多1小时吧,我脆弱的小心脏啊。。。。。。。。

#切换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)
View Code

 

 

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐