Javascript 量角器与手风琴
我必须在一个弹出窗口中选择一个元素,但在现实生活中它是一个手风琴。我使用以下方法,这是可行的:Javascript 量角器与手风琴,javascript,css,testing,protractor,Javascript,Css,Testing,Protractor,我必须在一个弹出窗口中选择一个元素,但在现实生活中它是一个手风琴。我使用以下方法,这是可行的: var accordion = element(by.id('promoAccordion')); var promoChannels = element.all(by.repeater('channelCreatives in creativesByChannel')); var firstPromoChannel = element.all(by.repeater('channelCreati
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()进行切换代码>或浏览器。选择Window()代码>因为这是一个手风琴,而不是一个新窗口
我怎样才能在手风琴内向下滚动以查看按钮?我认为您可以按如下方式进行操作
var sendChangesButton = element(by.buttonText('Send Changes'));
browser.executeScript('arguments[0].scrollTop(450);', sendChangesButton.getWebElement());
然后通过量角器点击这个按钮。我想你可以这样做:
var sendChangesButton = element(by.buttonText('Send Changes'));
browser.executeScript('arguments[0].scrollTop(450);', sendChangesButton.getWebElement());
然后可通过量角器单击此按钮。您也可以使用
browser.executeScript('arguments[0].scrollIntoView(true);', sendChangesButton.getWebElement());
你也可以使用
browser.executeScript('arguments[0].scrollIntoView(true);', sendChangesButton.getWebElement());
非常感谢,两个发布的解决方案都有效。。。我使用“scrollIntoView”方法来避免对coords的依赖。。。我真的很感谢你的帮助!非常感谢,两个发布的解决方案都有效。。。我使用“scrollIntoView”方法来避免对coords的依赖。。。我真的很感谢你的帮助!