-2

我正在自动化一个 Web 应用程序,并且在某一时刻需要帮助。

当我登录网络应用程序时。它要求输入用户名(经理 ID),然后该经理 ID 继续在主页上闪烁。Manager id 会随着不同的登录凭据而变化。

所以我需要继续检查那个 Manager id。

<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>

可以在 DOM 中看到的 manager ID 显示为 Manager Id: XXXX

所以请帮助我如何在经理 id: XXXX 之外找到这些“XXXX”

4

2 回答 2

4

据我了解,使用getText()后,您会得到 Manger Id : mngr8499但您不希望每次 Manager ID 都带有文本且只有 ID。我的实现是首先复制任何 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);
于 2015-01-22T09:45:14.717 回答
0

据我了解,我会使用 .getText() 方法来获取 td 中的 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 中退出时,您可以使用新的选择器来获取刷新后的值。

于 2015-01-21T18:32:45.837 回答