【发布时间】:2019-07-11 01:27:22
【问题描述】:
我正在用 Java 编写 selenium webdriver 测试。我需要测试单击 chrome 中没有 ID 或名称的“是”按钮。 我找不到要单击仅具有“是”作为其唯一标识符的按钮的元素。还有一个“否”按钮。
我尝试使用 xpath、类名来查找 WebElement,并且我尝试了 findElements 函数。什么都没有成功。
这是 HTML:
<span class="ui-btn-inner">
<span class="ui-btn-text popup-anchor-text">Yes</span>
</span>
我试过了:
WebElement yesBtn = browser.findElement(By.xpath("//div[@class='ui-btn-text popup-anchor-text']/span"));
WebElement yesBtn = browser.findElement(By.xpath("//span[.='Yes']"));
WebElement yesBtn = browser.findElement(By.xpath("//div[contains(text(), 'Yes')]"));
WebElement yesBtn = browser.findElement(By.xpath("//button[@class='ui-btn-text popup-anchor-text' and span='Yes']"));
WebElement yesBtn = browser.findElement(By.xpath("//div[@class='ui-btn-text popup-anchor-text' and span='Yes']"));
yesBtn.click();
List<WebElement> yesBtn = browser.findElements(By.className("ui-btn ui-shadow ui-btn-corner-all ui-btn-up-a"));
yesBtn.get(0).click();
错误信息: 无此类元素异常;没有这样的元素。无法定位元素。
【问题讨论】:
-
您是否尝试过使用浏览器开发者工具选择xpath?
-
检查跨度是否存在于另一个窗口中,因为它在类名中显示
popup。 -
该跨度在另一个窗口中不存在。我尝试在 Chrome 中使用浏览器开发工具。我还没有找到好的资源。他们都只是说在 Elements pane1 中搜索 xpath 或在控制台面板中搜索 $() 。两者都没有回来。
-
打开开发工具后,右键单击元素并在上下文菜单(最后一个选项)中点击
Inspect。那应该将您指向该元素。然后尝试here中所示的xpath -
怎么样 Browser.findElement(By.xpath("//span[contains(text(), 'Yes')]"));