gpt4 book ai didi

java - 如何获取 div 中子项的计数甚至文本列表

转载 作者:行者123 更新时间:2023-11-28 21:05:37 24 4
gpt4 key购买 nike

我将 Java 和 Webdriver 与 TestNG 结合使用。我有一个文本框,用户可以在其中输入药物名称,然后单击“开始”按钮。该程序然后运行对 RxNorm 的查询并返回药物名称的强度和形式。该网页有一个 ID 为 whatDosage 的 div,该 div 是一个按钮列表,其中包含该药物的适当强度/形式。

我的问题是,如何获取该 div 中的元素数量或向用户显示的强度/形式列表?最后,我将使用相同的药物名称调用 RxNorm 并比较结果。

我尝试了以下方法:

(1) String resultsWebPage = driver.findElements(By.id("whatDosage")).toString();
System.out.println(resultsWebPage);

(2) int resultsWebPage = driver.findElements(By.id("whatDosage")).size();
System.out.println(resultsWebPage);

第一个示例简单地返回了 id。第二个只给了我 1 的输出。我输入的药物名称将 11 个结果返回到 whatDosage div

div 看起来像这样:

<div id="whatDosage" class="btn-group btn-group-vertical buttons-radio span12"    role="radiogroup">
<input id="dosage1" class="hide" type="radio" value="20 MG Enteric Coated Capsule" name="dosage">
<button class="btn btn-large" rel="dosage1" role="radio" type="button">20 MG Enteric Coated Capsule</button>
<input id="dosage2" class="hide" type="radio" value="30 MG Enteric Coated Capsule" name="dosage">
<button class="btn btn-large" rel="dosage2" role="radio" type="button">30 MG Enteric Coated Capsule</button>
<input id="dosage3" class="hide" type="radio" value="60 MG Enteric Coated Capsule" name="dosage">
<button class="btn btn-large" rel="dosage3" role="radio" type="button">60 MG Enteric Coated Capsule</button>
</div>

input 元素被隐藏,button 元素显示在屏幕上。

最佳答案

这可以通过更改元素定位策略来解决。

我假设您的网页骨架如下所示。虽然这可能不准确,但它会让您了解使用方法。

<div id="whatDosage">
<div class="strength>Data 1</div>
<div class="strength>Data 2</div>
<div class="strength>Data 3</div>
</div>

当您运行代码时 (2):

int resultsWebPage = driver.findElements(By.id("whatDosage")).size();

它所做的是选择“whatDosage”div 而不是您需要的子元素。现在因为有一个“whatDosage”div,这说明执行 .size() 会返回 1。

你应该按照以下方式做一些事情:

List<WebElements> results = driver.findElements(By.className("strength"));
System.out.println(results.size());

for (WebElement result : results){
System.out.println(result.getText());
}

这将为您提供以下输出:

3
Data 1
Data 2
Data 3

您需要更改策略以根据您的代码定位强度/形式元素。一些方法是 By.id、By.className、By.xpath 等,可以引用 Locating UI elements 的 selenium 文档。 .

关于java - 如何获取 div 中子项的计数甚至文本列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14819815/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com