【问题标题】:Move element with protractor用量角器移动元素
【发布时间】:2015-06-18 16:04:22
【问题描述】:

我有一个问题,我无法拖动AndDrop 元素。 这个元素是 Angular Directive 中 jquery 的 dragAndDrop。 我使用 Protractor 2.10 和 Selenium 2.45。 我尝试了多种方式 dragAndDrop:

/**
 *Draft dragAndDrop
 */

'use strict';


describe('DragAndDrop ', function() {

    beforeEach(function() {

        browser.get(browser.baseUrl);
        browser.waitForAngular();
    });

    it('test', function(){

        //var coordenadas = placaUno.getLocation();


        var buttonStart = element(by.binding('landing-main-button-start')).click();
        var placas= element(by.buttonText('Placas')).click();

        //OK
        //var placaUno = element.all(by.repeater('board in boards')).get(1);

        //img placa  to drag and drop
        var placaUnoCSS = element(by.css('#hwtoolbox > div > ul > li:nth-child(1) > div.submenu-level > div > div > div:nth-child(1) > img'));

        //space with drop placa
        var espacioPlaca = element(by.css('#boardSchema'));

        //First way -- not found
        //browser.actions().mouseDown(placaUnoCSS).mouseMove(placaUnoCSS,espacioPlaca).mouseUp().perform()

        //Second way -- not found
        browser.actions()
            .dragAndDrop(placaUnoCSS, espacioPlaca)
            .perform();

        //Third way -- not found
        /*
         browser.actions().dragAndDrop(
         browser.findElement(by.css('#hwtoolbox > div > ul > li:nth-child(1) > div.submenu-level > div > div > div:nth-child(1) > img')),
         browser.findElement(by.css('#protoboard-canvas'))).perform();
        */

        browser.pause();

    });

    afterEach(function(){

    });


});

是否需要在测试中调用原生 Jquery 事件?

而且一步一步调试,元素存在,点击OK,mouseDown就OK... DragAndDrope 语句可以,但不能在网站上拖放。

【问题讨论】:

  • 您的问题不清楚。此代码中没有测试(describeitexpect...)。你在哪个浏览器上测试?您收到错误消息吗? browser.actions() 应该像您使用它一样工作,但您也可以查看 .dragAndDrop() 包装器:github.com/angular/protractor/blob/…
  • 你好,这部分代码在it状态
  • “那么,你期待什么?”您应该为您的问题添加更多信息;)
  • 你好,我添加更多信息。
  • 您在哪些浏览器上进行测试?

标签: selenium protractor


【解决方案1】:

帮我一个忙,通过向您的 placaUnoCSS 元素添加一个合理命名的类来减轻您的压力。然后你可以简单地选择它,如你所知,使用:

var startDragEle = element(by.css(".imageToDrag"));

鉴于您正确选择了拖动开始和结束元素

browser.actions().dragAndDrop().perform();

应该工作:-)

如果您需要,这里是 API:

https://code.google.com/p/selenium/source/browse/javascript/webdriver/actionsequence.js

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-23
    • 1970-01-01
    • 1970-01-01
    • 2014-10-15
    • 2018-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多