【发布时间】:2017-10-11 04:35:41
【问题描述】:
我有一个代码告诉 Selenium 等到一个元素可点击,但出于某种原因,Selenium 不会等待,而是点击该元素并立即在点 (x, y) 引发不可点击。知道如何解决这个问题吗?
x = '//*[@id="arrow-r"]/i'
driver = webdriver.Chrome(path)
driver.get('https://www.inc.com/inc5000/list/2017')
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, x)))
driver.find_element_by_xpath(x).click()
【问题讨论】:
-
什么是EC类?
-
@cezarypiatek 预期条件
-
EC.element_to_be_clickable 检查元素是否可见并启用。就可见性而言,它不包括元素落后于其他元素的场景。也许您的页面使用了类似 blockUI 小部件的东西,并且 click() 在封面消失之前发生。
-
@cezarypiatek 所以我应该等到弹出广告消失然后点击元素吗?
-
是的,当然。有一个专门的 EC 方法可以检查元素是否不可见。您应该针对弹出元素添加此检查。
标签: python selenium selenium-webdriver selenium-chromedriver