jjstrip

导航

元素无法定位问题 NoSuchElementException: Message: no such element: Unable to locate element 解决方法

定位网页上某个按钮时,总是报错元素定位不到,具体如下:NoSuchElementException: Message: no such element: Unable to locate element

改了好几种写法,最终直接用 xpath helper 里获取的内容填充进去,还是报错,瞬间领悟了,原来不是 xpath 的问题,是因为脚本执行到这一行代码时,对应页面上的元素还没加载完成,

导致定位不到,需要设置等待时间,举个简单的例子:

#coding:utf-8
from selenium import webdriver
import selenium.webdriver.support.ui as ui

dr = webdriver.Chrome()
dr.get('http://www.xxx.com')
wait = ui.WebDriverWait(dr,5)
wait.until(lambda driver: dr.find_element_by_xpath("//span[text()='查看']"))
dr.find_element_by_xpath("//span[text()='查看']").click()

标蓝的代码,表示会反复调用until中的函数,找到就返回,超过5秒就抛出Timeout异常。

posted on 2019-10-17 17:18  jjstrip  阅读(25203)  评论(0编辑  收藏  举报