Как извлечь определенный текст из узла в DOM с помощью xpath

#java #selenium #selenium-webdriver #xpath #domxpath

#java #selenium #selenium-webdriver #xpath #domxpath

Вопрос:

Рассмотрим структуру DOM приложения на основе angular следующим образом,

Мне нужно извлечь конкретный текст «отключенный» из указанного выше узла. Пожалуйста, поделитесь своими предложениями, как мне удалось получить этот конкретный текст?

Я попытался найти решение как,

HTML-код, например ("<div id="button" class="login-link s-btn_primary" disabled>")

  String value = driver.findElement(By.xpath("//div[@id='button']").getattribute("innerHTML").trim();
 

Комментарии:

1. Это звучит как проблема X-Y. Вместо того, чтобы просить помощи в решении проблемы, отредактируйте свой вопрос и спросите о реальной проблеме. Что вы пытаетесь сделать?

Ответ №1:

Сначала вы можете взять элемент, например

 WebElement element = driver.findElement(By.xpath("//div[@id='button']"));

 

а затем проверьте, есть ли у него атрибут (если есть, присвоите требуемое значение строке):

 String fetched = 
        element
                .findElements(By.xpath(".[@disabled]"))
                .size() == 1 ? "disabled" : "";
 

Последний код означает, что вы проверяете, имеет ли атрибут disabled attribute . Если да, вы присваиваете disabled значение своей строке, если нет, вы присваиваете пустое значение.