我正在尝试使用pythonselenium代码写入文本框,但是由于隐藏了文本框的父标签,因此出现错误。
driver.find_element_by_xpath("//input[@itemcode='XYZ']").send_keys(1)
我看到了Java的Javascript executor解决方法,但需要有关python脚本的类似帮助。
提前致谢!!
尝试以下解决方法(已在Firefox和Chrome中测试):
from selenium import webdriver from selenium.common.exceptions import NoSuchElementException browser = webdriver.Firefox() # Get local session(use webdriver.Chrome() for chrome) browser.get("http://www.example.com") # load page from some url assert "example" in browser.title # assume example.com has string "example" in title try: # temporarily make parent(assuming its id is parent_id) visible browser.execute_script("document.getElementById('parent_id').style.display='block'") # now the following code won't raise ElementNotVisibleException any more browser.find_element_by_xpath("//input[@itemcode='XYZ']").send_keys(1) # hide the parent again browser.execute_script("document.getElementById('parent_id').style.display='none'") except NoSuchElementException: assert 0, "can't find input with XYZ itemcode"
另一个解决方法甚至更简单(假设文本框的ID为“ XYZ”,否则使用任何可以检索它的JS代码),如果您只想更改文本框的值,可能会更好:
browser.execute_script("document.getElementById('XYZ').value+='1'")