如何在网页上查找隐藏元素



我正在尝试使用以下方法在文本框中传递一些内容:

driver.find_element_by_xpath('path').send_keys(value)

显然什么都没有通过。点击按钮的类似问题:

driver.find_element_by_xpath('path').click()

这也不起作用,在我可以看到的代码中

显示:无:

<li style="display:none">
</li>
</ul></div>                        
<div class="row form-group">
<div class="col-sm-12 form-group">
<label for="Username">Username</label>
<input autocomplete="off" class="form-control" data-val="true" data-val- 
required="User name is Required" id="Username" name="Username" type="text" value="">

根据您共享的 HTML @Sighil指出样式属性显示:none 是上一个 <li> 标记的一部分,不得影响用户名字段。要将一些文本传递到用户名字段,您可以使用以下代码行:

driver.find_element_by_xpath("//input[@class='form-control' and @id='Username']").send_keys("Dimple Mathew")

您可能必须诱导服务员才能使用户名字段可交互,在这种情况下,您必须诱导WebDriverWait,如下所示:

WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@class='form-control' and @id='Username']"))).send_keys("Dimple Mathew")

在使用发送密钥或单击之前使用显式等待语句。根据我的理解,单击或发送键时元素不可见。

有关您的参考,请访问显式和隐式等待文档

不久

前我遇到了类似的问题,请尝试以下操作:

js= "document.getElementById('Username').value = '" + str(YOURVALUE) + "';"
driver.execute_script(js)

它对我有用,希望这有帮助。

最新更新