Перетаскивание Selenium + Chrome Driver не работает должным образом - PullRequest
0 голосов
/ 12 октября 2018

Я использую Selenium 3.14 и ChromeDriver 2.42 с Chrome 69.0.Я всегда использовал этот код для перетаскивания, который работал до недавнего времени, когда тесты начинали давать сбои:

$driver->action()->clickAndHold()->moveByOffset(100, 0)->release()->perform();

После некоторого обновления Chrome он просто перестал перетаскивать.Я также попробовал dragAndDropBy() функцию, но не повезло.(dragAndDrop() не вариант, потому что мне нужно переместиться внутрь одного элемента).

1 Ответ

0 голосов
/ 12 октября 2018

После нескольких часов экспериментов я смог сузить проблему до этой странной вещи, когда при использовании moveByOffset с большим числом, например, 100 в моем примере, происходит сбой, он просто странно подпрыгивает на месте.Но когда я попытался переместить его только на пару пикселей, это сработало.

Это код, с которым я закончил:

$driver->action()->clickAndHold()->perform();
for($i = 0; $i < 10; $i++){
      //moving this 10 times by 10 px instead of once by 100px
      $driver->action()->moveByOffset(10, 0)->perform(); 
}
sleep(1);
$driver->action()->release()->perform();

Я просто хочу поделиться этим, если кто-то столкнулсяаналогичная проблема.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...