I am using Selenium to save a webpage. The content of webpage will change once certain checkbox(s) are clicked. What I want is to click a checkbox then save the page content. (The checkboxes are controlled by JavaScript.)
Firstly I used:
driver.find_element_by_name("keywords_here").click()
it ends with an error:
NoSuchElementException
then I tried “xpath” like, with implicit/explicit waiting:
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()
it gives an error:
ElementNotVisibleException
Posts
How to force Selenium WebDriver to click on element which is not currently visible?
Selenium Element not visible exception
suggest it should make the checkboxes visible before clicking, for example using:
execute_script
The question may sounds stupid, but how can I find out the proper sentence to “execute_script” the visibility of checkbox from the page source code?
Besides that, is there another way?
Thanks.
by the way, the line html code looks like:
<input type="checkbox" onclick="ComponentArt_HandleCheck(this,'p3',11);" name="keywords_here">
its xpath looks like:
//*[@id="TreeView1_item_11"]/tbody/tr/td[3]/input