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

我在使用java在Selenium中找到span元素时遇到了麻烦。

HTML看起来像:

Settings

而且我尝试了下面没有运气:

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

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

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

以及其他一些类似的尝试。 你能指点我做最好的方法吗? 在它看来我经常在eclipse中得到“无法找到元素”错误。

你的所有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")) 

使用上述By定位器中的任何一个,您可以找到如下元素: –

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

希望能帮助到你…:)