试图将元素拖动到iFrame内部的元素(使用Webdriver-io)?

时间:2016-05-16 22:43:53

标签: javascript cucumber webdriver-io chimp.js

我目前正在使用Webdriver IO,Chimp JS和Cucumber JS,而且我很难将一个元素拖到iframe内部的另一个元素上。我已经能够找到我要移动的元素,以及使用client.frame(0);后iframe中的元素但是我还没有找到点击元素的方法,切换到iframe找到我要移动的元素,然后移动元素。

为了方便起见,这是一张照片。我想将元素1移动到元素2.但元素2在iframe中:

enter image description here

Looking through the docs,我看到很多可能有用的操作,例如hold,release ext。但我正在桌面上工作,所以我不能使用任何移动操作。

有了这个限制,看起来我可用的唯一拖放功能是dragAndDrop,但似乎没有办法将对象拖放到iframe中的元素中Webdriver的javascript版本。我在想这个是正确的吗?有没有办法单独使用Cucumber JS?我觉得我在这里遗漏了一些巨大的东西,但我似乎无法弄明白:\

1 个答案:

答案 0 :(得分:0)

我使用的selenium独立驱动程序是selenium-server-standalone-2.50.0.jar(selenium-release.storage.googleapis.com/index.html?path=2.50/),我使用的chrome驱动程序是ChromeDriver 2.29( https://sites.google.com/a/chromium.org/chromedriver/downloads

    var webdriverio = require('webdriverio'),
      dragAndDrop = require('html-dnd').codeForSelectors,
      should = require('should');


    // a test script block or suite
    describe('Title Test for Web Driver IO - Tutorial Test Page Website', function() {

      // set timeout to 10 seconds
      this.timeout(10000);
      var driver = {};

      // hook to run before tests
      before( function () {
        // load the driver for browser
        driver = webdriverio.remote({ desiredCapabilities: {browserName: 'chrome'} });
        return driver.init();
      });

      // a test spec - "specification"
      it('should be load correct page and title', function () {
        var sectionId = "";
        // load page, then call function()
        return driver     
          .url('http://localhost:9000') //your url
          .pause(7000)  
          .moveToObject('#element1')
          .buttonDown()     
          .moveToObject('#element2')
          .buttonUp()
          .pause(2000)    
         .end()
      });

      // a "hook" to run after all tests in this block
      after(function() {
        return driver.end();
      });
    });