如何使用selenium webdriver c#将焦点切换到浏览器弹出窗口

时间:2016-04-05 07:01:52

标签: selenium-webdriver selenium-ide

我需要接受一个网页浏览器弹出窗口,它会刷新网站。 我使用以下脚本来刷新网站 -

$(document).ready(function() {

  $(".lineitem").each(function() {

    function compute() {

      var a = $('.a').val();
      var b = $('.b').val();
      var total = (a * b);

      $('.total').text(total);

    }

    $('.b, .a').change(compute);

  })
});

之后我使用下面的代码接受Web浏览器弹出窗口。

$(document).ready(function() {


$(".lineitem").each(function () {

    function compute () {

        var a = $(this).children('.a').val();
        var b = $(this).children('.b').val();
        var total = (a*b);

        $(this).children('.total').text(total);

    }

        $('.b, .a').change(compute);

      })}); */

但是我发现错误,因为未找到警报。 我相信重点不在于弹出窗口,这可能是原因。 有人可以帮我吗?

2 个答案:

答案 0 :(得分:0)

如果您需要刷新页面,而不是使用F5的sendkey,您可以在Java中尝试以下

 driver.navigate().refresh();

重新弹出弹出窗口,能够检查弹出窗口中的元素吗?如果你能够检查弹出窗口,那么它将是正常页面而不是警报。

交叉检查使用的定位器,尝试使用所需的等待显示确定按钮并且是任何框架内的按钮(iframe)。如果是在框架内,则在点击之前切换框架。在框架内完成工作后,切换回默认内容。

    driver.switchTo().frame("provide frame name or location"); //switch to frame command

    driver.switchTo().defaultContent(); //switch to default content command

    //below is wait command
    WebDriverWait wait=new WebDriverWait(driver, 120);
    wait.until(ExpectedConditions.presenceOfElementLocated(By.id("id of ok")));

谢谢你, Murali G

答案 1 :(得分:0)

尝试直接点击确定..如果仍然无效,则检查是否存在任何框架..除了浏览器弹出窗口之外必须弹出一个应用程序..切换到警报在这种情况下不会工作

希望它会对你有所帮助:)。