首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >尝试在范围中查找文本元素

尝试在范围中查找文本元素
EN

Stack Overflow用户
提问于 2019-07-11 09:27:22
回答 2查看 659关注 0票数 0

我正在用Java编写一个selenium webdriver测试。我需要测试点击一个“是”按钮在没有id或名称的chrome。我找不到要单击唯一标识符为"Yes“的按钮的元素。还有一个"No“按钮。

我已经尝试过使用xpath、类名和findElements函数来查找WebElement。没有什么是成功的。

这是HTML:

代码语言:javascript
运行
复制
<span class="ui-btn-inner">
<span class="ui-btn-text popup-anchor-text">Yes</span>
</span>

我试过了:

代码语言:javascript
运行
复制
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();

错误消息: NoSuchElementException;没有这样的元素。找不到元素。

EN

回答 2

Stack Overflow用户

发布于 2019-07-11 19:08:20

正确的XPath定位器应为:

代码语言:javascript
运行
复制
//span[text()='Yes']

以防万一你可以去找normalize-space() function

代码语言:javascript
运行
复制
//span[normalize-space()='Yes']

如果这不起作用:

  1. 确保跨度不属于某个iframe,否则在尝试定位该元素之前必须先执行switch to the iframe操作。

driver.switchTo().frame("your-frame");

  • Make确保使用WebDriverWait类,以防元素无法立即使用,这样WebDriver就会以轮询间隔执行多次查找尝试

新的驱动程序(驱动程序、10).until(ExpectedConditions.elementToBeClickable(By.xpath("//spantext()='Yes'"))); WebDriverWait

票数 1
EN

Stack Overflow用户

发布于 2019-07-15 18:50:58

试试//span[@class='ui-btn-inner']/descendant::span[contains(text(), 'Yes')]吧。这应该会有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56980521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档