Read a hidden value in a div using Selenium Python binding
python, selenium, selenium-webdriver, webdriver
Solution
I don't think you need to execute JS to get the hidden input's value.
You can use `get_attribute` to the value attribute
get_attribute(name)
So in your case, try:
captcha_value = driver.find_element_by_id("current_captcha").get_attribute("value")
driver.find_element_by_id("capchta").send_keys(captcha_value)
Problem
Issue: How can you read a value in a nested `<div>`? Situation: I am testing the registration on our web site. In order to complete the process, the user will need to enter the captcha. Using a helper class (on our dev server) we can display (hidden) the current captcha. I need to grab that and save it to be used by a .send_keys function (that part is the easy part). I have no code to share with what I am using, as I am not even sure where to jump in. Well, I have this, but this is obviously not the answer: ``` driver.find_element_by_id("capchta").send_keys("foobar") ``` With above, I can send a key value (seen as "foobar"). I just need to replace "foobar" with a string that I read in the `value=XXX` Here is the HTML code with the captcha, represented with the `value=XXXX`. ``` <div id="code_area"> <p id="captcha_blurb">Please enter the security code below</p> <div id="capchta_area"> <img id="secuity_icon" src="/img3/Secuity-Icon.png"> <img id="security-image" src="data:image/png;=="> <input id="current_captcha" type="hidden" value="XXXX"> <input id="capchta" class="reg_form_input" value="" name="code" placeholder="Enter Security Code" title=" Please Enter These Characters." onblur="removeInputInfoBox('reg_box');" onfocus="addInputInfoBox('#capchta','#capchta_area', 'reg_box');"> </div> ```