Как найти промежуток с определенным текстом в Selenium? (использовать Java)


У меня возникли проблемы с поиском элемента span в Selenium с помощью java.

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 6

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));
Надеюсь, это поможет...:)