一尘不染

如何在Selenium中找到具有特定文本的跨度?(使用Java)

selenium

我在使用Java在Selenium中定位span元素时遇到问题。

HTML看起来像:

<div class="settings-padding">

<span>Settings</span>

</div>

我已经尝试了以下方法,但是没有运气:

By.xpath("span[.='Settings']")

By.xpath("span[text()='Settings']")

By.cssSelector("div[class='settings-padding']"))

以及其他一些类似的尝试。您能指出我执行此操作的最佳方法吗?就目前而言,我在日食中不断收到“无法定位元素”错误。


阅读 311

收藏
2020-06-26

共1个答案

一尘不染

一切xpath看起来都不错,只是语法上有些错误。你失踪//xpath

正确xpath的如下:

By by = By.xpath("//span[.='Settings']")

要么

By by = By.xpath("//span[text()='Settings']")

要么

By by = By.xpath("//div[@class='settings-padding']/span"))

或者您可以cssSelector用作:-

By by = By.cssSelector("div.settings-padding > span"))

使用上面的任何一个通过定位器,您都可以如下所示定位元素:

WebDriverWait wait = new WebDriverWait(driver, 10);
WebElement el = wait.until(presenceOfElementLocated(by));

希望能帮助到你…:)

2020-06-26