2017-02-13 62 views
1

我想取消选中使用Python中的硒的复选框。但是,我得到了以下错误消息:Python硒选择隐形复选框

selenium.common.exceptions.ElementNotVisibleException:
消息:元素当前不可见,所以可能不会

我想知道如何进行交互应我使它可见?

这个复选框的一个有趣的部分是它包含了一些JavaScript,我不确定是否这是造成麻烦的地方。我尝试了以下方法,但得到了相同的错误。

driver.find_element_by_id("1986 Thru 1990").click() 

driver.find_element_by_xpath('//*[@id="1986 Thru 1990"]').click() 

enter image description here

回答

1

尝试添加一些时间才能等到元素变得可见:

from selenium.webdriver.common.by import By 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC 

wait = WebDriverWait(driver, 10) 
element = wait.until(EC.visibility_of_element_located((By.ID,'1986 Thru 1990'))) 
element.click() 

让我知道,如果问题仍然存在

+0

谢谢为你的建议离子。但它看起来像我有一个超时异常'selenium.common.exceptions.TimeoutException:消息:'。我应该增加超时限制吗? –

+0

不可以。告诉我这个复选框最初是否可见,或者您需要向下滚动才能看到它或将鼠标指针悬停在其上以使其可见? – Andersson

+0

@ tao.hong如果你有这个超时异常,那么这可能意味着你没有用你的'xpath'来获取正确的元素。你可能会得到一些不可见的元素。提供一些html可能会有帮助。 – mrfreester