У меня есть следующие xpaths, которые WebDriver должен обрабатывать таким же образом, мне нужно получить из них текстовый контент.
//*[@id = "dialogMessage"]/div[3]
//*[@id = "dialogMessage"]/div[3]/p
//*[@id = "dialogMessage"]/div[3]/p/span[2]
Я попытался использовать этот код, чтобы соответствовать всем вышеперечисленным.
String result_text = driver.findElement(By.xpath("//*[contains(@value, 'dialogMessage')]")).getText();
Только один из этих xpaths присутствует на странице при каждой загрузке страницы. Я получаю следующее сообщение об ошибке:
org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"xpath","selector":"//id[contains(@value, 'dialogMessage')]"}
Похоже, вы пытаетесь получить все элементы, которые содержат значение атрибута, равное dialogMessage, вместо этого попробуйте использовать этот xpath:
//*[contains(@id, 'dialogMessage')]
или
//*[@id='dialogMessage']
...или еще лучше, используйте
driver.findElement(By.id("dialogMessage"));
.