当页面上存在多个相同类型的元素时,选取特定元素

时间:2018-03-11 23:23:25

标签: java selenium

基本上我要做的是为游戏Satoshi地雷制作一个简单的机器人。我已经获得了所有功能,除了一个,这是炸弹探测。

这是代码:

WebElement  bomb =      driver.findElement(By.className("game").cssSelector("li[class='tile pressed bomb reveal']"));

问题在于它从早期游戏中找到了炸弹,因为该页面存储了之前的所有游戏。因此,即使当前游戏中没有炸弹,它也会在整个页面中搜索炸弹并找到炸弹,因此它认为它仍然在丢失。有任何想法吗?清除webelement缓存?我不确定如何让它只在当前的游戏中寻找炸弹。

1 个答案:

答案 0 :(得分:0)

您需要找到当前游戏的DIV。根据我所看到的,之前的游戏包含班级faded

当前游戏

<div class="game practice_game" id="game_xxx" style="visibility: visible; display: block;">

上一场比赛

<div class="game practice_game faded" id="game_xxx" style="visibility: visible; display: block;">

因此,您需要一个定位器,指定该元素不应包含faded类,例如CSS选择器:

div.game:not(.faded)

从那里,您可以指定包含您想要的任何内容的LI标记。