我必须选择一个看似弹出窗口的元素,但实际上它是一个手风琴。我使用以下方法,这是正常的:
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,就会出现第二个垂直滚动条(因为手风琴中的内容不适合页面)。当我在尝试时
expect((accordion).isPresent()).toBe(true);
browser.executeScript('window.scrollBy(0,450);');
它实际上向下滚动原始窗口,这对我来说不能帮助我查看按钮。没有办法通过browser.switchTo();
或browser.selectWindow();
进行切换,因为这是手风琴而不是新窗口。
我怎么能在这个手风琴中向下滚动才能看到按钮?
答案 0 :(得分:0)
我认为您可以按照以下方式执行此操作;
var sendChangesButton = element(by.buttonText('Send Changes'));
browser.executeScript('arguments[0].scrollTop(450);', sendChangesButton.getWebElement());
然后这个按钮可以通过量角器点击。
答案 1 :(得分:0)
您也可以使用
browser.executeScript('arguments[0].scrollIntoView(true);', sendChangesButton.getWebElement());