如何在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));
希望能帮助到你…:)