python+selenium做UI自动化的时候,定位方式没有错误,但是就是点击不到元素,有以下三种解决方案:
- 1.加上等待 sleep(5) 等待页面加载完成再点击
- 2.等待元素的状态是可点击后,再点击元素,加一个超时时间,自己设置,我设置的是20s
# 使用等待
key = WebDriverWait(web_ui.driver, 20).until(
expected_conditions.element_to_be_clickable((By.XPATH, '//*[@id="na"]/div[1]/ul/li[8]/div')))
# 点击
key.click()
如果上面两种方式都不行,且第二个报错
selenium.common.exceptions.TimeoutException: Message
那就用第三种方案:
- 3.直接使用js操作页面,解决click()不生效的问题
a= self.find_element(xpath="//*[text()='test']")
self.actions.move_to_element(a).perform()
self.driver.execute_script("arguments[0].click();", a)