Почему функция selenium move_by_offset иногда ждет перед выполнением (Python / Chrome) - PullRequest
0 голосов
/ 03 ноября 2018

Я использую Selenium в Chrome с Python, чтобы автоматизировать некоторые тесты, и частично это двигает мышь, так как я создаю много тестов и параллельно выполняю их на потоках. Единственный фрагмент кода, который действительно доставляет мне проблемы, это:

action =  selenium.webdriver.common.action_chains.ActionChains(driver)
action.move_by_offset(x,y)
action.perform()

По какой-то причине вышеописанное займет не менее 5 секунд, например 5,03123 секунды, чтобы выполнить. Когда есть задержка, она всегда немного выше 5, но никогда не ниже 5, что заставляет меня поверить, что где-то есть время. Я проверил файл селеновых цепочек действий и прокомментировал:

self.w3c_actions.key_action.pause()

на тот случай, если это был виновник, но существенных изменений не произошло.

Важным примечанием является то, что эта проблема кажется более серьезной / встречается чаще, когда мое окно свернуто и у меня запущено несколько потоков.

Я сильно растерялся из-за того, почему это происходит, и перепробовал кучу разных вещей / тестов, но в основном безрезультатно. Любая помощь очень ценится.

Если вам нужна какая-либо дополнительная информация или мне нужно выполнить другие специальные тесты, дайте мне знать, и я это сделаю.

1 Ответ

0 голосов
/ 03 ноября 2018

Вы делаете это неправильно, комментируя строку:

self.w3c_actions.key_action.pause()

В методе move_by_offset() вызов key_action.pause() реализован с целью, которая Out of Scope для этого вопроса. Вы не можете изменить исходный клиентский код 1011 *.

окно свернуто

Во время выполнения Селеновых тестов вам нужно держать свои окна развернутыми .

Вы найдете соответствующее обсуждение в Способ открыть браузер Selenium, не перекрывая мой текущий браузер

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