【问题标题】:How can I handle popup window safely in selenium webdriver如何在 selenium webdriver 中安全地处理弹出窗口
【发布时间】:2016-01-06 19:22:05
【问题描述】:

我尝试了许多解决方案,但没有一个对我有用。我有一页正在打开弹出窗口,当我尝试使用该弹出窗口执行任何操作时,它说元素不可见。

根据场景,首先加载数据需要时间,如下图 Popup_1 ,然后显示如下图 Popup_2 的数据。

我正在尝试设置在 我收到文本“成功:”之前不会关闭弹出窗口的条件。

我的代码:

 for (String handle : driver.getWindowHandles()) {
    driver.switchTo().window(handle);}


    WebDriverWait waitforEle = new WebDriverWait(driver, 300);
    waitforEle.until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.xpath("//*[@id='divc8fff3cf6a']/div[1]/strong")));              
    driver.findElement(By.xpath("//*[@id='modal']/div[1]/a")).click();          

弹窗的HTML代码:

<div class="modal fade in" id="modal" style="display: block;"><div class="modal-header"><a class="close" href="#" data-dismiss="modal">×</a><h3>Delete Listings</h3></div><div class="inner"><div id="divc8fff3cf6a">
    <div class="alert alert-success fade in">
  <button class="close" data-dismiss="alert">×</button>
  <strong>Success:</strong> 1 products have been queued for removal from Amazon.</div>    <div class="modal-footer">
        <a href="#" class="btn btn-small" onclick="location.reload()">Close</a>    </div>
</div><script>
//<![CDATA[
window.customModal = {"formUUID":"#formfbe89bf4a5","modalUUID":"#divc8fff3cf6a"};
if(typeof window.customModal != 'undefined'){
    $(window.customModal["formUUID"]).on("submit", function(e){
        e.preventDefault();
        $.ajax({
            cache: false,
            method: "POST",
            data: $(this).serialize(),
            url: $(this).attr("action"),
            before: function(){
                window.modal.close();
                window.loading.show();
            },
            success: function(data, textStatus){
                window.loading.close();
                window.modal.options["content"] = data;
                window.modal.show();
            }
        });

        return false;
    });

    $(".resubmit").on("click", function(e){
        window.modal.close();
        $(window.app[$(this).data("resubmit")]).trigger("submit");
    });
}
//]]>
</script></div></div>

【问题讨论】:

  • 嗨,根据循环,如果第一个窗口是父窗口,那么确定你得到了异常吗?
  • 这只是一个正在打开的窗口/弹出窗口。该循环中是否有任何错误,请帮助解决。因为当我单击该弹出窗口的关闭 X 按钮时,它可以正常工作,因此切换似乎很好。但无法根据问题进行管理。
  • 我期待文本显示因为 jquery 脚本功能就像警报一样..可能很有趣您是否尝试过警报命令来获取文本?或 javascriptexecutor .. xpath 中使用的 id 看起来像动态的,我希望也使用其他可能的定位器。谢谢
  • 我尝试了 alert.accept 但没有奏效。让我试试 javascriptexecutor。
  • 我觉得不行。所以好吧似乎不太好尝试 alert.getMessage();

标签: java selenium-webdriver popup


【解决方案1】:

试试这个

if(alert.getText().contains("Success:"))

  alert.dismiss();

【讨论】:

  • 其实并没有警觉。当我尝试保持警惕时。它说no alert open
猜你喜欢
  • 2020-06-11
  • 1970-01-01
  • 1970-01-01
  • 2015-07-09
  • 1970-01-01
  • 1970-01-01
  • 2015-03-06
  • 1970-01-01
  • 2012-07-16
相关资源
最近更新 更多