>我在一个列表中有 18 个名字,想在与另一个元素进行比较后单击该名称。
List<WebElement> list = driver.findElements(By.xpath("//*[@class='w-100 f7 pv2 ph1 mb2 bg-white-20 pointer']// following :: span[@class='v-mid']"));
Iterator<WebElement> att = list.iterator();
WebElement e;
while(att.hasNext()) {
e= att.next();
if(e.getText().equalsIgnoreCase("Rohit Sharma"));
{
e.click();
break;
}
下面是内部的 HTML 代码
<div class="w-50 dib">
<img class="dib w2 h2 br-100 bg-dirty-green mr1 v-mid"
src="https://fanfight.com/images/player.png" alt="">
<span class="v-mid">Saurabh Tiwary</span> // i am taking this in my list and want to compare with a another name if both match it will select
</div>
<div class="dib tc ttu" style="width: 15%;">MI</div>
<div class="dib tc" style="width: 15%;">0</div>
<div class="dib tc" style="width: 15%;">7.2</div>
<div class="dib tc" style="width: 5%;"></div>
像上面的 HTML 代码一样,我有 18 个div
在创建列表时,您可以轻松迭代列表项并调用click()
到匹配的条件,如下所示:
List<WebElement> list = driver.findElements(By.xpath("//div[@class='w-50 dib']//span[@class='v-mid']"));
for(WebElement ele:list)
if(ele.getText().equalsIgnoreCase("Rohit Sharma"));
{
e.click();
break;
}
注意:在调用findElements()
时,我已经使用您提供的HTML中存在的元素构建了定位器策略,您可能足以满足您的需求,否则您可能需要相应地更改定位器策略。