我试图通过它的id找到一个元素,点击它并下载一个文件。
driver.get(url);
driver.implicitly_wait(60);
time.sleep(3)
element = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.ID, "ContentPlaceHolder1_a1")))
href = element.get_attribute('href')
value = href.split('/')[-1]
print(value);
element.click(); # Error
错误element click intercepted: Element is not clickable at point (110, 1003)
我试过Xpath和CSS路径。都给予相同的错误。如果我检查可见性,它就会超时。但是我可以手动看到元素是可见的
element = WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, "//a[contains(text(), 'text of the link')]")))
最后,我试了这个代码。
element = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.ID, "ContentPlaceHolder1_a1")))
ActionChains(driver).move_to_element(element).click().perform()
但它会产生误差
selenium.common.exceptions.MoveTargetOutOfBoundsException: Message: move target out of bounds
1条答案
按热度按时间6vl6ewon1#
虽然确定了元素,页面仍在加载,可能是它点击其他地方的原因。
向下滚动到元素,然后等待1到2秒钟,然后单击。
对我来说效果很好。