У меня есть элемент с динамическим номером. Это уникальный номер заказа, который генерируется после каждого заказа. Я пытаюсь извлечь это число из тега параграфа <p>
с помощью метода getText (), но веб-драйвер возвращает пустой текст после запуска теста.
Выполнение:
boolean a = driver.findElement(By.xpath("(.//*[@id='alert-message']/div/p/strong)[1]")).isDisplayed();
возвращает false, предполагая, что элемент не отображается.
Это HTML:
<div class="ng-scope" ng-include="templates[step]">
<div class="ng-scope" ng-controller="wReviewCtrl">
<div class="panel-alert ng-hide" ng-show="success<0">
<div class="panel-alert" ng-show="success>0 && hasRole('BUYER')">
<div class="alert-wrap in">
<div id="alert-message" class="alert alert-success" role="alert">
<div class="media">
<strong>Done!</strong>
<p>
A new order with Number
<strong class="ng-binding">JJ-MD000-12345</strong> //Order number
was generated. The order is now complete.
</p>
</div>
</div>
</div>
</div>
<div class="panel-alert ng-hide" ng-show="success>0 && hasRole('SELLER')">
<div class="alert-wrap in">
<div id="alert-message" class="alert alert-success" role="alert">
<div class="media">
<strong>Done!</strong>
<p>
Я пытался получить текст, используя:
String orderNo = driver.findElement(By.xpath("(.//*[@id='alert-message']/div/p/strong)[1]")).getText();
System.out.println(orderNo);
Я перепробовал все виды альтернативных комбинаций вместо .getText()
, включая:
.getAttribute("textContent");
.getAttribute("innerHTML");
.getAttribute("value"); //retuns NULL value
.getAttribute("outerText");
Но ни один из них не работал. Как я могу получить этот номер заказа в HTML?