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

2022-09-03 12:31:14

我在使用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//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']")

推荐