显式等待不适用于复选框selenium

时间:2017-09-27 23:09:18

标签: python selenium selenium-webdriver

我试图在点击复选框之前实现显式等待:

WebDriverWait(self.driver, 10).until(EC.element_to_be_clickable((By.XPATH, "pay_type_list_item_id_salary"]")))

self.driver.find_element_by_xpath('//input[@id="pay_type_list_item_id_salary"]').click()

我的问题是我的显式等待一直发送错误:

  

点(663,478)无法点击。其他元素将收到点击。

我正在尝试使用不同类型的显式等待,例如visibility_of_element_locatedinvisibility_of_element_located(使用我脚本上一步中的元素),但这些选项没有运气。

如果我在两行之间添加time.sleep(1)我的脚本可以运行,但我知道使用time.sleep不是最有效的方法。

在此之前的上一步打开日历,我不确定它是否会在日历结束时尝试给出点击,这就是接收此错误的原因。

1 个答案:

答案 0 :(得分:1)

您收到的错误表明另一个元素正在覆盖您尝试单击的元素。如果你看一下错误信息(你真的应该在你的问题中发布完整的错误信息),它会告诉你那个元素的HTML。这将使您了解阻止点击的元素,以便您可以找到它并找出页面的哪个部分。然后你可以等它离开。根据您的描述,听起来您需要等待日历关闭。