【问题标题】:Protractor - Scroll down and click量角器 - 向下滚动并单击
【发布时间】:2015-03-03 09:32:45
【问题描述】:

我正在尝试简单地在表格中向下滚动并单击元素。

这是我拥有的功能:

    var scrollIntoView = function () {
        arguments[0].scrollIntoView();
    }

    element.all(by.css('div.ui-grid-selection-row-header-buttons')).then(function(arr) { 
    var row = arr[8]; 
    browser.executeScript(scrollIntoView, row.getWebElement()).then(function () { 
    row.click(); 
    }); 
    });

这个脚本实际上可以工作,甚至向下滚动,当我在 arr[] 中使用更高的数字(索引)时问题开始;

例如 8 有效,但如果我使用 20 则无效,而且我很确定那里有 50 个值,所以这有问题。

任何提示都会对大家有所帮助

【问题讨论】:

标签: javascript testing protractor end-to-end


【解决方案1】:

如果你想滚动到一个元素,你可以使用

    browser.actions().mouseMove(element).perform();

之后浏览器将聚焦该元素。

【讨论】:

    【解决方案2】:

    这个经过测试的示例演示了如何使用 javascript 滚动到一个元素并单击该元素。

    it('scroll to element', function() {
           browser.driver.get('https://www.seleniumeasy.com/');
            var btnSubscribe= element(by.id('mc-embedded-subscribe'));
             browser.executeScript("arguments[0].scrollIntoView();", btnSubscribe);
             browser.sleep(2500);
             btnSubscribe.click();
          });
    

    【讨论】:

      【解决方案3】:

      你实际上可以这样做:

      $$('div.ui-grid-selection-row-header-buttons').each(function (ele) {
          browser.actions().mouseMove(ele).click().perform();
      });
      

      $$实际上代表element.all(by.css('.abc'))

      如果您不想点击所有元素,而是根据过滤条件选择元素,也可以使用 filter(),如下所示:https://www.protractortest.org/#/api?view=ElementArrayFinder.prototype.filter

      【讨论】:

        猜你喜欢
        • 2014-06-27
        • 2020-07-27
        • 2015-09-08
        • 1970-01-01
        • 1970-01-01
        • 2016-12-07
        • 1970-01-01
        • 1970-01-01
        • 2014-12-10
        相关资源
        最近更新 更多