定位网页上某个按钮时,总是报错元素定位不到,具体如下: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异常。