【发布时间】:2015-02-21 22:46:38
【问题描述】:
Selenium WebDriver Automation 并需要以下查询的帮助 -
最初我在下面做:wt=webdriverWait 和 wd =webdriver
wt.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector("[class=\"infoMessage\"],[class=\"errorMessage\"]")).getText();
wd.findElement(By.cssSelector("[class=\"infoMessage\"],[class=\"errorMessage\"]")).getText();
验证测试是通过还是失败,因为当事件成功时触发 infoMessage,当事件导致失败时触发 errorMessage。
以上在早期版本中工作得非常好,但现在 GUI 中最近发生了变化以优化性能,因为 InfoMessage 立即从 DOM 中闪现,WebDriver 无法找到它或 StaleReferenceException。
我尝试通过引入显式延迟 (Thread.sleep) 和隐式延迟来解决 但我仍然无法追踪 infoMessage。 请你能给我建议任何解决方案吗?我在下面附上 DOM。
<div id="packetSniffingMessages">
<table id="packetSniffingMessages">
<tbody>
<tr class="**infoMessage**">
<td>Action Successful </td>
</tr>
<div id="packetSniffingMessages">
<table id="packetSniffingMessages">
<tbody>
<tr class="**errorMessage**">
<td>
Failed to Start
</td>
</tr>
</tbody>
</table>
现在,如前所述,当我单击提交按钮时,infoMessage 会显示,但在 秒/毫秒 后它会从 DOM 中闪现。
我只剩下下面了。
<div id="packetSniffingMessages">
<div id="packetSniffingMessages"></div>
</div>
注意:FOR , errorMessage 我能够获取文本,因为它保持之前的工作状态。
请指教。
【问题讨论】:
-
点击后可以试试
wt.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//tr[contains(@class,'infoMessage')]/td")).getText();吗?
标签: selenium-webdriver automation webdriver testng browser-automation