Как найти промежуток с определенным текстом в 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 ответ:
Все ваши
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));