Динамический текст в селен Webdriver

Я автоматизирую веб-приложение и в какой-то момент мне нужна помощь.

Когда я войду в веб-приложение. он запрашивает имя пользователя (идентификатор менеджера), а затем этот идентификатор менеджера продолжает мигать на домашней странице. Идентификатор менеджера изменяется с разными учетными данными.

Поэтому мне нужно постоянно проверять этот идентификатор менеджера.

<tr>
<td>
<center>
<table width="100%" align="center">
<tbody>
<tr/>
<!--comments: To link all the screens-->
<tr>
<tr class="heading3" align="center">

<td style="color: green">Manger Id : mngr8499</td>

</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</body>

2 ответа

Решение

Насколько я понимаю, после использования getText() вы получаете Manger Id: mngr8499, но вам не нужен каждый раз идентификатор менеджера с текстом и только идентификатором. Моя реализация будет состоять в том, чтобы сначала скопировать текст в любую переменную String, а затем с помощью метода String.replaceAll() я смогу получить необходимый текст.

Ниже приведена реализация того же, пожалуйста, дайте мне знать, если я правильно понял вопрос.

WebElement mngrid = driver.findElement(By.xpath("//tr[@class='heading3']/td"));
String actual_text = mngrid.getText();
actual_text= actual_text.replace("Manger Id :"," ");
System.out.println(actual_text);

Из того, что я понимаю, я бы использовал метод.getText(), чтобы получить 4 символа в тд, используя:

driver.findElement(By.cssSelector(".heading3 > td")).getText().substring(17);

Если вас беспокоит обновление HTML, рассмотрите возможность использования:

WebDriverWait wait = new WebDriverWait(driver, 10)
wait.until(ExpectedConditions.stalenessOf(By.cssSelector(".heading3 > td"));

Когда предыдущее значение выпадает из DOM, вы можете использовать новый селектор, чтобы получить обновленное значение.

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