Pythonセレンコードを使用してテキストボックスに書き込もうとしていますが、テキストボックスの親タグが非表示になっているため、エラーが発生します。
driver.find_element_by_xpath("//input[@itemcode='XYZ']").send_keys(1)
Javascript executorがjavaで回避策を示していますが、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'")