Как нажать и перетащить на элемент карты, используя машинописный текст - PullRequest
1 голос
/ 20 марта 2019

Мне нужна помощь в этом, я хочу нажать на определенную область, затем выбрать перетаскивание области, а затем отпустить щелчок. похож на изображение ниже:

click drag and select

Я попробовал этот код, но ничего не произошло:

browser.actions().
  mouseDown(element(by.id('waze_map1')), '{x: 191, y: 56}').
  mouseMove(element(by.id('waze_map1')), {x: 540, y: 504}).
  mouseUp().
  perform();

Любое предложение и идея будет принята с благодарностью. спасибо

Ответы [ 2 ]

0 голосов
/ 20 марта 2019

Взглянул на документацию транспортира здесь .

Это, кажется, просто наследуется от Actions, определенного селеном.Я очень смущен, потому что они приводят примеры, использующие mouseDown(), mouseMove() и mouseUp(), но, глядя на исходный код для Actions в селене, похоже, что у него нет никакого метода mouseDown() или mouseUp() и не наследует их, если только я что-то упустил (mouseMove() можно найти там).

Однако существует метод dragAndDropBy(), который подразумевает "удобство"метод, который выполняет щелчок и удержание в месте расположения исходного элемента, перемещается на заданное смещение, а затем освобождает мышь. "Что если вы попробуете:

browser.actions().dragAndDropBy(yourElement, "540", "504).perform()

или

browser.actions().dragAndDropBy(yourElement, "540", "504).build().perform()
0 голосов
/ 20 марта 2019

У меня были проблемы с цепочкой browser.actions(), что может быть тем, с чем вы столкнулись.Chrome Driver имел проблемы с этим раньше, хотя я считаю, что в настоящее время он работает так, как задумано в текущей версии.У меня есть аналогичная функция в моем тестовом коде, которая делает то же самое, главное отличие в том, что я использую async / await.При использовании ваших селекторов это будет выглядеть так:

await browser.actions().mouseMove(element(by.id('waze_map1')), '{x: 191, y: 56}').perform(); //moved cursor to starting point
await browser.actions().mouseDown().perform(); //clicks down
await browser.actions().mouseMove(element(by.id('waze_map1')), {x: 540, y: 504}).perform(); //drags the cursor
await browser.actions().mouseUp().perform();   //releases cursor
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...