Angularjs 量角器:识别不可见元素。

Angularjs 量角器:识别不可见元素。,angularjs,jasmine,protractor,Angularjs,Jasmine,Protractor,当我在量角器中运行测试时,我收到错误消息说 信息: 失败:元素不可见 是否仍然可以找到不可见的元素 堆栈: ElementNotVisibleError:元素不可见 (会话信息:chrome=56.0.2924.87) (驱动程序信息:chromedriver=2.26.436362(5476ec6bf7ccbada1734a0cdec7d570bb042aa30),平台=Windows NT 6.3.9600 x8664)(警告:服务器未提供任何堆栈跟踪信息) 形态: 规格js 如果您单击的元

当我在量角器中运行测试时,我收到错误消息说 信息: 失败:元素不可见

是否仍然可以找到不可见的元素

堆栈: ElementNotVisibleError:元素不可见 (会话信息:chrome=56.0.2924.87) (驱动程序信息:chromedriver=2.26.436362(5476ec6bf7ccbada1734a0cdec7d570bb042aa30),平台=Windows NT 6.3.9600 x8664)(警告:服务器未提供任何堆栈跟踪信息)

形态:

规格js


如果您单击的元素应该是可见的,并且应该在页面上(不是条件外观或随机性),那么您可以通过以下方式进行操作:

browser.executeScript("$('#toast-container').remove();");
element.all(by.css('.dx-datagrid-table')).all(by.css('.dx-data-row')).get(0).click().then(function () {
    element.all(by.css('.dx-row.dx-data-row.dx-column-lines.bold_item.dx-selection')).first().click().click().then(function () {
        var currentUrl = browser.driver.getCurrentUrl();
        expect(currentUrl).toMatch('/itemMaintenance/edit');
        browser.sleep(2000);
        browser.executeScript("$('#toast-container').remove();");
        var family = element.all(by.css('.selectize-input')).get(4);

        //added-start
        var EC = protractor.ExpectedConditions;
        browser.wait(EC.visibilityOf(family), 5000, 'Element was not visible in time');
        //added-end

        family.click().then(function () {
            browser.sleep(12222);
            element.all(by.css('.selectize-input input')).get(4).sendKeys(121212);
            browser.sleep(10000);
            var content = element.all(by.css('.selectize-dropdown-content')).get(0);
            content.all(by.css('.option')).get(1).click();
            browser.sleep(2000);
        });
    });
    browser.sleep(1000);
});

如果您单击的元素应该是可见的,并且应该在页面上(不是条件外观或随机性),那么您可以通过以下方式进行操作:

browser.executeScript("$('#toast-container').remove();");
element.all(by.css('.dx-datagrid-table')).all(by.css('.dx-data-row')).get(0).click().then(function () {
    element.all(by.css('.dx-row.dx-data-row.dx-column-lines.bold_item.dx-selection')).first().click().click().then(function () {
        var currentUrl = browser.driver.getCurrentUrl();
        expect(currentUrl).toMatch('/itemMaintenance/edit');
        browser.sleep(2000);
        browser.executeScript("$('#toast-container').remove();");
        var family = element.all(by.css('.selectize-input')).get(4);

        //added-start
        var EC = protractor.ExpectedConditions;
        browser.wait(EC.visibilityOf(family), 5000, 'Element was not visible in time');
        //added-end

        family.click().then(function () {
            browser.sleep(12222);
            element.all(by.css('.selectize-input input')).get(4).sendKeys(121212);
            browser.sleep(10000);
            var content = element.all(by.css('.selectize-dropdown-content')).get(0);
            content.all(by.css('.option')).get(1).click();
            browser.sleep(2000);
        });
    });
    browser.sleep(1000);
});

check
isDisplayed
当元素存在但不存在时,返回falsevisible@maurycy不管怎样,我们可以了解堆栈跟踪信息中的不可见元素吗?check
isDisplayed
当元素存在但不存在时,返回falsevisible@maurycy不管怎样,我们可以了解堆栈跟踪信息中的不可见元素吗?
browser.executeScript("$('#toast-container').remove();");
element.all(by.css('.dx-datagrid-table')).all(by.css('.dx-data-row')).get(0).click().then(function () {
    element.all(by.css('.dx-row.dx-data-row.dx-column-lines.bold_item.dx-selection')).first().click().click().then(function () {
        var currentUrl = browser.driver.getCurrentUrl();
        expect(currentUrl).toMatch('/itemMaintenance/edit');
        browser.sleep(2000);
        browser.executeScript("$('#toast-container').remove();");
        var family = element.all(by.css('.selectize-input')).get(4);

        //added-start
        var EC = protractor.ExpectedConditions;
        browser.wait(EC.visibilityOf(family), 5000, 'Element was not visible in time');
        //added-end

        family.click().then(function () {
            browser.sleep(12222);
            element.all(by.css('.selectize-input input')).get(4).sendKeys(121212);
            browser.sleep(10000);
            var content = element.all(by.css('.selectize-dropdown-content')).get(0);
            content.all(by.css('.option')).get(1).click();
            browser.sleep(2000);
        });
    });
    browser.sleep(1000);
});