【问题标题】:Protractor doesn't detect pop up dialog (md-dialog-content)量角器未检测到弹出对话框(md-dialog-content)
【发布时间】:2016-03-15 16:09:03
【问题描述】:
it("Checking for file uploaded pop up window",function(){
    expect(element(by.css('md-dialog-content')).isPresent()).toBe(true); //Check the upload success window

    var h2 = element(by.css('md-dialog-content > h2')).getText(); //Get h2 of the pop up

    expect(h2).toEqual("Attention"); //h2 is equal to attention

    var h2Content = element(by.css('md-dialog-content > p')).getText(); //get h2 content

    expect(h2Content).toEqual("File: "+"repair_anonymized_1000sample.json"+" uploaded"); //content h2 is equal to ...

    element(by.css('.md-actions > button')).click(); //Click on the close button

    expect(element(by.css('md-dialog-content')).isPresent()).toBe(false); //THe dialog box will not exist

});

我要做的是检查“md-dialog-content”元素的弹出对话框。我正在检查它里面的 h2 和 p 元素。

但是量角器给了我一个错误,说他们期望第一个期望是“假”而不是真的。这意味着他们没有检测到明显存在的 md-dialog-content。

是的,之前的“it”测试已经完成了所有必要的步骤来生成此对话框以弹出。

我的测试规范的前面步骤(我正在使用 ng-file-upload):

it("Upload files",function(){

    var fileToUpload = "/home/vagrant/Desktop/repair_anonymized_1000sample.json";

    var absolutePath = path.resolve(fileToUpload);

    browser.executeAsyncScript(function(callback){ //Fire Fox needs this code to display the hidden input element or it will give error of element not visible

        document.querySelectorAll('input[type="file"]')[0]

        .style.visibility= 'visible';

        callback();

    });

    var input = element(by.css('input[type="file"]'));

    input.sendKeys(absolutePath);   

    browser.sleep(2000); //wait for the alert to appear

});

【问题讨论】:

    标签: javascript selenium automation protractor


    【解决方案1】:

    您可能需要等待弹出对话框到become present

    var EC = protractor.ExpectedConditions,
        dialog = element(by.css('md-dialog-content'));  // or just $('md-dialog-content')
    
    browser.wait(EC.presenceOf(dialog), 5000);
    

    如果您收到超时异常,这意味着该元素不存在,或者您的定位器不正确,或者该元素可能位于 iframe 内。

    【讨论】:

    • 元素在那里。定位器也是正确的。并且该元素不在 iframe 内。该元素已生成,因此它与我的 ng-file-upload 内容一起放置在 html 的底部。这和问题有关系吗?
    • @geoffreykoh 应该不是问题。您认为您可以制作一个可重复的示例,以便我也可以看到问题吗?谢谢。
    猜你喜欢
    • 2015-11-23
    • 2022-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-18
    • 1970-01-01
    • 2017-02-27
    相关资源
    最近更新 更多