使用Selenium Python绑定读取div中的隐藏值

Dav*_*ave 3 python selenium webdriver selenium-webdriver

问题:如何读取嵌套中的值<div>

情况:我正在我们的网站上测试注册.为了完成该过程,用户将需要输入验证码.使用帮助程序类(在我们的开发服务器上),我们可以显示(隐藏)当前的验证码.我需要抓住它并保存它以供.send_keys函数使用(该部分是简单的部分).我没有代码与我正在使用的东西分享,因为我甚至不确定在哪里跳.

好吧,我有这个,但这显然不是答案:

driver.find_element_by_id("capchta").send_keys("foobar")
Run Code Online (Sandbox Code Playgroud)

在上面,我可以发送一个键值(看作"foobar").我只需要用我在中读到的字符串替换"foobar"value=XXX

这是带有验证码的HTML代码,用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>
Run Code Online (Sandbox Code Playgroud)

Yi *_*eng 5

我认为您不需要执行JS来获取隐藏输入的值.

您可以使用get_attributevalue属性

get_attribute(名称)

所以在你的情况下,尝试:

captcha_value = driver.find_element_by_id("current_captcha").get_attribute("value")
driver.find_element_by_id("capchta").send_keys(captcha_value)
Run Code Online (Sandbox Code Playgroud)