量角器无法在element.all语句的while循环内执行单击操作

别克萨

在element.all语句的while循环中,我试图通过单击突出显示表上的元素,然后单击删除按钮,然后在确认弹出窗口上单击“确定”。

问题是当我运行量角器时,while循环似乎仅遍历表中的行-即:only items [j] .click(); 和j ++似乎在while循环中执行,而我的两次jquery单击直到最后才执行一次。我是否在'element.all then语句'中的while循环中缺少一些特殊的东西?

请帮忙!

it('ADD MULTIPLE CAMERAS AND VERIFY', function() {
    browser.get('http://localhost:3000');
    var singleCamsToAdd = 5;
    var multiCamsToAdd = 2;
    var totalCams = singleCamsToAdd + multiCamsToAdd - 1;
    var newDesign = element(by.css('[ng-click="fileManager.newFile()"]'));
    var addCamera = element(by.css('[ng-click="design.addCamera()"]'));
    newDesign.click();

    //Multiple cameras added as many different rows
    for(i=0; i<singleCamsToAdd ; i++)
        addCamera.click();

    //Multiple cameras added in one camera row
    var quantity = element(by.css('[ng-model="cameraForm.qty"]'));
    quantity.clear();
    quantity.sendKeys(multiCamsToAdd);

    //Verify # rows corresponds with # cameras
    element.all(by.css('tbody[class ="bso ng-scope"] tr')).then(function(items) { 
    expect(items.length).toBe(singleCamsToAdd);
    expect(items.length + (multiCamsToAdd-1) ).toBe(totalCams);

    var j = 0;
    while(j < items.length) {
        items[j].click();
        $('[ng-click="editCamera.delete()"]').click();
        $('[data-ng-click="modalOptions.ok();"]').click();
        j++;
    }

    });

});
齐亚米德

我不是问题出在循环,而是等待。尝试等待模式,然后单击它:

var modalLocator = by.css('[data-ng-click="modalOptions.ok();"]');
element(by.css('[ng-click="editCamera.delete()"]')).click();
browser.driver.wait(protractor.until.elementLocated(modalLocator), 5000);
element(by.css(modalLocator)).click();

如果页面加载时模态已经在dom中,则可能只需要等待它变得可见即可:

var modal = element(by.css('[data-ng-click="modalOptions.ok();"]')); //hidden element
element(by.css('[ng-click="editCamera.delete()"]')).click();
browser.driver.wait(protractor.until.elementIsVisible(modal), 5000);
element(by.css(modalLocator)).click();

更新此外,尝试将elementFinder调用移入循环,这可能是因为dom结构在某些时候发生了变化,并且量角器无法在dom中找到先前找到的元素(这只是我的猜测):

var rowsLocator = by.css('tbody[class ="bso ng-scope"] tr');

element.all(rowsLocator).then(function(items) { 
    var i;
    for (i=0; i<items.length; i++) {
        elements.all(rowsLocator).get(i).click();
        $('[ng-click="editCamera.delete()"]').click();
        $('[data-ng-click="modalOptions.ok();"]').click();
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

用参数循环量角器测试

来自分类Dev

量角器查找和单击元素

来自分类Dev

While在量角器中循环

来自分类Dev

量角器-返回操作系统

来自分类Dev

无法在带有非角度站点的量角器中单击按钮

来自分类Dev

单击表中的列-量角器

来自分类Dev

量角器-分配给element.all.locator.count的变量返回NaN为什么?

来自分类Dev

量角器无法单击元素,但能够获取文本

来自分类Dev

量角器:“等待”不适用于“ element.all”

来自分类Dev

量角器无法单击<a>元素内的嵌入式<span>

来自分类Dev

For循环未在量角器中执行

来自分类Dev

从element.all量角器返回计数总和

来自分类Dev

量角器脚本代码无法循环

来自分类Dev

量角器右键单击可以正常工作。但无法选择其中的一个选项

来自分类Dev

量角器-返回操作系统

来自分类Dev

单击元素-量角器

来自分类Dev

如何在量角器中执行“ angular.element()。scope()”?

来自分类Dev

尝试从量角器中的element.all获取单个项目时出错

来自分类Dev

我无法单击量角器中的列表项

来自分类Dev

For循环未在量角器中执行

来自分类Dev

无法使用量角器单击父元素之外的元素

来自分类Dev

单击图标无法使用量角器

来自分类Dev

无法在量角器中单击“行”重复中的对象

来自分类Dev

如何执行量角器黄瓜

来自分类Dev

量角器 Javascript 未按顺序执行

来自分类Dev

无法使用量角器单击页面右侧的登录链接

来自分类Dev

如果量角器无法在视图中定位元素,如何在量角器测试中执行自动滚动到元素?

来自分类Dev

无法为量角器执行“webdriver-manager update”

来自分类Dev

无法在量角器中单击循环中的元素

Related 相关文章

热门标签

归档