javascript - Protractor 和棘手的 Accordion

标签 javascript css testing protractor

我必须在弹出窗口中选择一个元素,但实际上它是 Accordion 。我使用以下方法,这是有效的:

var accordion = element(by.id('promoAccordion'));

var promoChannels = element.all(by.repeater('channelCreatives in creativesByChannel'));

var firstPromoChannel = element.all(by.repeater('channelCreatives in creativesByChannel')).first();

稍后:

this.activatePromotions = function() {

expect((accordion).isPresent()).toBe(true);

expect(promoChannels.count()).toBeGreaterThan(1);

firstPromoChannel.click();

现在,我需要向下滚动到“发送更改”按钮并单击它。这个按钮定义为

var sendChangesButton = element(by.buttonText('Send Changes'));

问题是,一旦我点击 firstPromoChannel,就会出现第二个垂直滚动条(因为 Accordion 中的内容不适合页面)。当我在努力的时候

expect((accordion).isPresent()).toBe(true);

browser.executeScript('window.scrollBy(0,450);');

它实际上向下滚动了原始窗口,这并不能帮助我看到按钮。无法通过 browser.switchTo();browser.selectWindow(); 进行切换,因为这是 Accordion 而不是新窗口。

我怎样才能在 Accordion 中向下滚动以使按钮可见?

最佳答案

你也可以使用

browser.executeScript('arguments[0].scrollIntoView(true);', sendChangesButton.getWebElement());

关于javascript - Protractor 和棘手的 Accordion ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37953252/

相关文章:

javascript - AngularJS:如何 Jasmine 测试指令中的回调函数?

javascript - 容器外的滑动导航按钮

html - body 顶部的宽度 100% 需要滚动

CSS or Table 'Dock Layout' Non Scrolling Header 解决方案?

ruby - 明确测试库/ gem 是否由 rspec 中的 stub 定义?

java - AngularJS浏览器验证提示

javascript - 异步/等待返回 Promise { <pending> }

javascript - 使用 Javascript 的 HTML 电子邮件

java - datajpatest + springframework 测试Sql编码特殊字符在Windows上失败

ios - Xcode Server Bot 问题 : warning. 生成服务错误。问题:路径 'some/path' 的存档格式不正确