我有这样的HTML:
<div class="classDiv">
<header>
<button class="btn btn-icon-only btn-icon-only pull-right ng-scope" type="button">
<span class="btn-box">
<span class="sr-only">Edit</span>
<span class="icon-btn icon-edit2" aria-hidden="true"></span>
</span>
</button>
<h3 class="classH3">Text1</h3>
</header>
</div>
<div class="classDiv">
<header>
<button class="btn btn-icon-only btn-icon-only pull-right ng-scope" type="button">
<span class="btn-box">
<span class="sr-only">Edit</span>
<span class="icon-btn icon-edit2" aria-hidden="true"></span>
</span>
</button>
<h3 class="classH3">Text2</h3>
</header>
</div>
&#13;
问题是每个标签都是相同的,只有每个div的H3文本都不同。我只想单击一个特定的“编辑”按钮,例如第二个“编辑”按钮。
所以我试图找到第二个H3,然后从那里我试图找到第二个Edit按钮,如下所示:
WebElement hText = webDriver.findElement(By.xpath("//h3[contains(., 'Text2')]"));
WebElement editBtn = hText.findElement(By.xpath("//button[contains(., 'Edit')]"));
editBtn.click();
但它总是点击第一个“编辑”按钮。我想找到父元素,并从父元素中找到它的子元素。但在这种情况下,每个标签都是相同的,所以我不知道如何寻找一个特定的孩子。任何帮助非常感谢
答案 0 :(得分:0)
如果我不记得坏(//按钮)[1]或(//按钮)[2],您可以根据他在返回的按钮列表中的位置选择按钮
答案 1 :(得分:0)
试试这个:
WebElement divWithH3 = webDriver.findElement(By.xpath("div[.//h3[contains(., 'Text2')]]"));
WebElement editBtn = divWithH3.findElement(By.xpath("//button[.//span[contains(text(), 'Edit')]]"));
editBtn.click();
首先找到包含“Text2”元素的div
元素。在那里,您正在搜索button
元素,其中包含span
元素,其中包含文字“编辑”