【问题标题】:How to handle elements with WebDriver that are dynamically generated by JSJS动态生成的WebDriver如何处理元素
【发布时间】:2015-05-26 14:23:37
【问题描述】:

在使用 Java 和 WebDriver 进行自动化方面,我是一名大三学生,但我遇到了以下问题:

  1. 搜索客户
  2. 从下拉列表中更改客户类型
  3. 按保存按钮。

结果: 在通知 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 消息的文本(“保存您的更改”或“成功”),因为它会出现并消失?

【问题讨论】:

标签: javascript selenium webdriver


【解决方案1】:

您可以使用 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。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-24
    • 2014-09-24
    • 1970-01-01
    • 2020-11-03
    • 1970-01-01
    相关资源
    最近更新 更多