Javascript 如何使用由JS动态生成的WebDriver处理元素
在Java和WebDriver的自动化方面,我是一名大三学生,我遇到了以下问题:Javascript 如何使用由JS动态生成的WebDriver处理元素,javascript,selenium,webdriver,Javascript,Selenium,Webdriver,在Java和WebDriver的自动化方面,我是一名大三学生,我遇到了以下问题: 搜索客户 从下拉列表中更改客户类型 按保存按钮 结果: 通知div容器中会出现一条消息(由JS/Jquery生成)(请参见下面的代码) 这可以是“保存更改”,也可以是“成功”或“失败”,具体取决于我试图更改的客户 <div id="notifications"> <ul id="noty_inline_layout_container" class="" style="w
<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>
-
正在保存更改。。。
-
成功
消息在一段时间后消失,notification div容器不再具有子元素,如下所示:
<div id="notifications"></div>
既然JS消息出现并消失,我如何提取它的文本(“保存您的更改”或“成功”) 您可以使用
WebElement#getText()
获取文本
或者,如果您希望更具体:
String text = driver.findElement(By.cssSelector("div#notifications span.noty_text")).getText();
然后使用text
确保在消息消失之前执行此操作,否则可能会出现StaleReferenceException。请提供一个示例并包含必要的代码开始阅读:我添加了代码和示例。
String text = driver.findElement(By.cssSelector("div#notifications span.noty_text")).getText();