Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 量角器与手风琴_Javascript_Css_Testing_Protractor - Fatal编程技术网

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的依赖。。。我真的很感谢你的帮助!