Selenium WebDriver для соответствия аналогичным xpaths

У меня есть следующие 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')]"}
Основы программирования на Java
Основы программирования на Java
Java - это высокоуровневый объектно-ориентированный язык программирования, основанный на классах.
Концепции JavaScript, которые вы должны знать как JS программист!
Концепции JavaScript, которые вы должны знать как JS программист!
JavaScript (Js) - это язык программирования, объединяющий HTML и CSS с одной из основных технологий Всемирной паутины. Более 97% веб-сайтов используют...
0
0
31
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Похоже, вы пытаетесь получить все элементы, которые содержат значение атрибута, равное dialogMessage, вместо этого попробуйте использовать этот xpath:

//*[contains(@id, 'dialogMessage')]

или

 //*[@id='dialogMessage']

...или еще лучше, используйте driver.findElement(By.id("dialogMessage"));.

JeffC 23.05.2019 17:32

Другие вопросы по теме