定位网页上某个按钮时,总是报错元素定位不到,具体如下:NoSuchElementException: Message: no such element: Unable to locate element
不是 xpath 的问题,是因为脚本执行到这一行代码时,对应页面上的元素还没加载完成,
导致定位不到,需要设置等待时间,举个简单的例子:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import selenium.webdriver.support.ui as ui
driver = webdriver.Chrome()
driver.get('http://www.xxx.com')
wait = ui.WebDriverWait(driver ,5)
driver.find_element_by_xpath('//body').send_keys(Keys.PAGE_DOWN) # 发送PAGE_DOWN
# 会反复调用until中的函数,找到就返回,超过5秒就抛出Timeout异常。
wait.until(lambda driver: driver.find_element_by_xpath("//span[text()='提交']"))
driver .find_element_by_xpath("//span[text()='提交']").click()