java - Java 和 Selenium:无法获取输入字段的内容
问题描述
我在获取输入字段的文本内容时遇到问题。我似乎只能用我正在使用的方法来了解它。
页面截图:
(这是一个项目列表,包括每行中的一个输入字段。)
标记:
<ul class="budsjett budsjett--kompakt" id="sifobudsjett">
<li class="budsjett-post ng-isolate-scope ng-valid" id="SIFO_mat">
<div class="felt" >
<div class="felt-indre">
<div id="SIFO_mat-farge" class="sifo-farge farge-graa"></div>
<span class="budsjett-post-beskrivelse" >
<span tabindex="0" title="Vis hjelpetekst" role="button">
<span class="hjelpetekst-label" >Mat og drikke</span>
</span>
<span class="sifo-hjelp" aria-hidden="true"></span>
</span>
</span>
<span class="budsjett-post-verdi">
<span class="budsjett-post-verdi-endret" ng-show="!skrivebeskyttet" aria-hidden="false" style="">
<input id="SIFO_mat-input" name="SIFO_mat" type="number">
<span class="felt-enhet"><abbr id="SIFO_mat-enhet" title="kroner" translate=""><span class="ng-scope">kr</span></abbr></span>
</span>
</span>
</div>
</div>
</li>
编码:
List<WebElement> sifoliste = driver.findElement(By.id("sifobudsjett")).findElements(By.tagName("li"));
第一个元素的结果:“Mat og drikke”。
List<WebElement> sifoliste = driver.findElement(By.id("sifobudsjett")).findElements(By.tagName("input"));
第一个元素的结果:“”
List<WebElement> sifoliste = driver.findElement(By.id("sifobudsjett")).findElements(By.className("budsjett-post-verdi-endret"));
第一个元素的结果:“kr”
有任何想法吗?
解决方案
<input>
标签没有文本,您在 UI 中看到的内容保存在属性value
中。即使在 html 中看不到它也存在
driver.findElement(By.id("SIFO_mat-input")).getAttribute("value");
对于所有<input>
的
List<WebElement> sifoliste = driver.findElement(By.id("sifobudsjett")).findElements(By.tagName("input"));
String text = sifoliste.get(0).getAttribute("value"); // 2790
推荐阅读
- react-native - 使用 apisauce 和 textinput 创建电子邮件验证
- assembly - 20 位地址到 16 位寄存器
- python - 在 PyQt5/Pyside2 中窃取焦点
- azure-devops - 如何使用 Azure DevOps Services Build Pipeline 根据标签值检索 TFVC 源文件,然后压缩这些文件?
- ios - 我收到 firebase 权限错误。即使我按照firebase规则做了,它也不起作用
- .htaccess - 为什么子域到文件夹上出现错误 500
- c# - Json 数组异常
- spring - 在春季从HTML表单中获取复选框值作为数组
- scala - Kubernetes 中使用 grpc 客户端的 grpc 服务的高延迟
- neo4j - Neo4j:检查节点是否存在并将结果用作条件