我正在使用 Selenium 来保存网页。单击某些复选框后,网页的内容将发生变化。我想要的是单击一个复选框,然后保存页面内容。(复选框由 JavaScript 控制。)
首先我使用:
driver.find_element_by_name("keywords_here").click()
它以错误结束:
NoSuchElementException
然后我尝试了类似“xpath”的隐式/显式等待:
URL = “the url”
verificationErrors = []
accept_next_alert = True
aaa = driver.get(URL)
driver.maximize_window()
WebDriverWait(driver, 10)
#driver.find_element_by_xpath(".//*[contains(text(), ' keywords_here')]").click()
#Or:
driver.find_element_by_xpath("//label[contains(text(),' keywords_here')]/../input[@type='checkbox']").click()
它给出了一个错误:
ElementNotVisibleException
帖子
如何强制 Selenium WebDriver 单击当前不可见的元素?
建议它应该在单击之前使复选框可见,例如使用:
execute_script
这个问题可能听起来很愚蠢,但是我怎样才能从页面源代码中找到正确的句子来“execute_script”复选框的可见性?
除此之外,还有其他方法吗?
谢谢。
顺便说一句,行 html 代码如下所示:
<input type="checkbox" onclick="ComponentArt_HandleCheck(this,'p3',11);" name="keywords_here">
它的 xpath 看起来像:
//*[@id="TreeView1_item_11"]/tbody/tr/td[3]/input