Пытаетесь перетащить элемент в элемент, который находится внутри iFrame (с помощью Webdriver-io)?

В настоящее время я использую Webdriver IO, Chimp JS и Cucumber JS, и мне трудно перетаскивать элемент на другой элемент внутри iframe. Я смог найти элемент, который я хочу переместить, а также элемент в iframe после использования client.frame(0); однако я не нашел способа щелкнуть элемент, переключиться на iframe, чтобы найти элемент, в который я хочу переместиться, а затем переместить элемент.

Чтобы было проще, вот картинка. Я хочу переместить элемент 1 в элемент 2. Но элемент 2 находится в iframe:

Просматривая документы, я вижу много потенциально полезных действий, таких как hold, release ext. Но я работаю на десктопе, и поэтому не могу использовать какие-либо мобильные действия.

С этим ограничением, похоже, что единственная доступная мне функция перетаскивания - это dragAndDrop, но, похоже, нет способа перетащить объект в элемент в iframe в javascript-версии Webdriver. Правильно ли я думаю об этом? Есть ли способ сделать это исключительно с помощью Cucumber JS? Я чувствую, что мне не хватает чего-то огромного здесь, но я не могу понять это:\

1 ответ

Я использовал автономный драйвер селена 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();
      });
    });
Другие вопросы по тегам