Пытаетесь перетащить элемент в элемент, который находится внутри 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();
});
});