在Java和WebDriver的自动化方面,我是一名大三学生,我遇到了以下问题:
结果: 通知div容器中出现一条消息(由JS / Jquery生成)(参见下面的代码) 可以是“保存您的更改”,“成功”或“失败”,具体取决于我要更改的客户。
<div id="notifications">
<ul id="noty_inline_layout_container" class="" style="width: 100%; height: auto; margin: 0px; padding: 0px; list-style-type: none; z-index: 9999999;">
<li style="overflow: hidden; background: rgb(255, 234, 168) url("data:image/png;base64,iVBORw0KGgoAAAANS") border: 1px solid rgb(255, 194, 55); cursor: pointer; height: 1px;">
<div id="noty_545247324387577860" class="noty_bar">
<div class="noty_message" style="font-size: 13px;">
<span class="noty_text">Saving your changes...</span>
</div>
</div>
</li>
<li style="overflow: hidden; background: lightgreen url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB=="); border: 1px solid rgb(80, 194, 78); cursor: pointer; height: 1px;">
<div id="noty_851025645275431000" class="noty_bar">
<div class="noty_message" style="font-size: 13px; ">
<span class="noty_text">Success</span>
</div>
</div>
</li>
</ul>
</div>
一段时间后消息消失,通知div容器不再有子元素,如下所示:
<div id="notifications"></div>
如何提取JS消息的文本(“保存更改”或“成功”),因为它会出现并消失?
答案 0 :(得分:0)
您只需使用WebElement#getText()
获取文字。
String text = driver.findElement(By.cssSelector("span.noty_text")).getText();
或者,如果您想要更具体:
String text = driver.findElement(By.cssSelector("div#notifications span.noty_text")).getText();
然后用text
确保在消息消失之前执行此操作,否则可能会出现StaleReferenceException。