如何在 Selenium 中找到具有特定文本的跨度? (使用 Java)
Posted
技术标签:
【中文标题】如何在 Selenium 中找到具有特定文本的跨度? (使用 Java)【英文标题】:How to locate a span with a specific text in Selenium? (Using Java) 【发布时间】:2016-11-26 19:37:17 【问题描述】:我无法使用 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']"))
以及其他一些类似的尝试。你能给我指出最好的方法吗?就目前而言,我在 Eclipse 中经常收到“无法定位元素”错误。
【问题讨论】:
【参考方案1】:您所有的xpath
看起来都还可以,只是一些syntactically 不正确。你在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));
希望对您有所帮助...:)
【讨论】:
【参考方案2】:对于下面的元素
<span class="test-button__text">
Test Text
</span>
以下解决方案适用于我
driver.find_element_by_xpath("//span[contains(@class, 'test-button__text') and text()='Test Text']")
【讨论】:
以上是关于如何在 Selenium 中找到具有特定文本的跨度? (使用 Java)的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Selenium 中使用 @FindBy 注释来处理跨度文本?
如何通过 Selenium 和 Python 从 html 标签跨度获取文本
使用 Selenium 和 Robot Framework 遍历 Web 元素
无法使用 selenium python 获取多个跨度类文本
Selenium CSS_Selector 正在寻找具有特定文本的元素,结果是“NoSuchElementException”