【问题标题】:WebDriver SwitchTo : Browser pop up not being detectedWebDriver SwitchTo:未检测到浏览器弹出窗口
【发布时间】:2014-07-08 18:49:51
【问题描述】:

我要使用的弹出窗口类型在这里 http://demos.telerik.com/aspnet-ajax/window/examples/radopen/defaultcs.aspx

我正在尝试启动弹出窗口。并在弹窗中输入文字

我有这个页面对象试图处理弹出窗口

var popUp = function() {

    browser.getAllWindowHandles().then(function(handles)
    {
       this.originalWindow = handles[0];
       this.newWindow = handles[1];
    })
    this.switchToPopUp = function() {
        browser.switchTo().window(this.newWindow);
    }
    this.switchToOriginal = function() {
        browser.switchTo().window(this.originalWindow);
    }
}
module.exports = new popUp();

在我的测试中,我有这些行

    openRadWindow.click();
    popUp.switchToPopUp();
    browser.element(by.id('ctl00_SearchTextBox').sendKeys("Automation Test List");

我在跟踪中看到的错误是 WebDriver.switchTo().window(undefined)

【问题讨论】:

  • 如果您的应用程序使用 Telerik RadWindow 对象类型,这不是一个新的浏览器窗口。它只是一个标准的 HTML 元素,其样式看起来像一个浏览器窗口。使用findElement(),而不是switchTo().window()
  • 谢谢吉姆。我一直在阅读有关 findElement() 与 elementfinder 的内容,有点困惑。我最初尝试使用 elementfinder 获取元素但不能,所以我继续认为我需要检测一个窗口。不过感谢您的帮助!我会在一分钟内试试这个

标签: javascript selenium-webdriver webdriver protractor


【解决方案1】:

感谢您引导我找到正确的答案。就我而言,弹出窗口中有一个 iframe,所以我必须这样做

switchTo.frame('framename')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-05
    • 2013-12-11
    • 2012-10-23
    • 2013-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多