Write value to hidden element with selenium python script

后端 未结 1 1256
刺人心
刺人心 2020-12-18 08:08

I\'m trying to write to a text box with my python selenium code but get an error since a parent tag of the text box is hidden.

driver.find_element_by_xpath(\         


        
相关标签:
1条回答
  • 2020-12-18 08:48

    Try this workaround(tested in Firefox and 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"
    

    Another workaround is even simpler(assuming the text box's id is "XYZ", otherwise use any JS code that can retrieve it) and probably better if you only want to change the text box's value:

    browser.execute_script("document.getElementById('XYZ').value+='1'")
    
    0 讨论(0)
提交回复
热议问题