量角器拖放不适用于chrome

时间:2018-06-11 11:13:18

标签: angular protractor e2e-testing

我对量角器v~5.3.0有疑问。我试图从此网站拖放一个元素:https://www.html5rocks.com/en/tutorials/dnd/basics/

在底部,我们可以拖放四个方格。但通过量角器,我只能拖动元素,但不能放下它。这是我写的代码。请让我知道我做错了什么。提前致谢。

describe('germi App', () => {
  let page: AppPage;

  beforeEach(() => {
    page = new AppPage();

    browser.waitForAngularEnabled(false);
  });

  it('should  drag and drop with JavaScript', async () => {
    await page.navigate2();
    const element1 = element(by.xpath('//*[@id="columns-full"]/div[1]'));
    const element2 = element(by.xpath('//*[@id="columns-full"]/div[2]'));
    browser.sleep(10000);

    /* browser
        .actions()
        .dragAndDrop(element1, element2)
        .perform();
    browser.sleep(5000); */

    browser.actions().
      mouseDown(element1).
      mouseMove(element2).
      mouseUp().
      perform();

    browser.sleep(5000);
  });
});

如果你想检查我的navigate2功能。

navigate2() {
           return browser.get("https://www.html5rocks.com/en/tutorials/dnd/basics/");
         }

3 个答案:

答案 0 :(得分:0)

我有同样的问题。

最后我能够使用 browser.driver 来解决它。

在需要时间同步的AngularJS应用程序上效果更好。在许多情况下,browser.driver更可靠。

retrofit.newBuilder()
        .client(anotherOkHttpClientWithOtherAttributes.build())
        .build()

希望这会对你有所帮助!

答案 1 :(得分:0)

当前的网络驱动程序不支持HTML5元素的拖放功能。您必须使用一些JavaScript触发dragenter,dragover和drop事件。

<强>解决方案:

  1. 下载drag_and_drop_helper.js并将其保存在您的计算机中。
  2. 在测试中,您可以使用

    执行拖动选项
    params
  3. 有关其他信息,请参阅http://elementalselenium.com/tips/39-drag-and-drop。希望这对你有帮助!

答案 2 :(得分:0)

请尝试以下代码

*/

我所做的更改是此行,因为 dragAndDrop()方法将webElement作为输入参数。

.dragAndDrop(等待element1.getWebElement(),等待element2.getWebElement())