Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

selenium управление мышью


(Olexsandr Borisov) #1

Необходимо нажать на кнопку по координатам, элемент не входит в дом структуру(flash).


(Сергей Блохин) #2

Но лучше в данном случае поработать с Sikuli.


(Olexsandr Borisov) #3

sikuli не катит


(Olexsandr Borisov) #4

что то я там не увидел как кликнуть по координатам, все привязка к елементам


(Сергей Блохин) #5

В данном случае элементом может служит <object>


(Olexsandr Borisov) #6

в смысле? и так и так объект, или имеет введу можно null?

>>>chrome_selenium.move_to_element_with_offset(object, 1100, 44).click().perform() 

type object 'object' has no attribute 'id

(Дмитрий Жарий) #7

тут имелось ввиду, что нужно найти тэг, при помощи которого вставляется флэш.
Это либо тэг object либо n’u embed.

Но, у вас с Webdriver вряд ли что получится. Клик по флэшу работает в Internet Explorer с nativeEvents = true, но нестабильно, и вроде бы должен заработать в Firefox начиная с версии WebDriver 2.39 (свежая).

Я рекомендую, по возможности вычислить координаты через вебдрайвер, а дальше кликнуть через Autoit или Java Robot класс. Может быть, в RF есть для этого байндинги.


(Olexsandr Borisov) #8

жаль, хотел оптимизировать, что бы параллельно проходили тесты в разных браузерах, а управляю мышью с помощью pywin32


(Дмитрий Жарий) #9

Как по мне, то лучше уж виртуалки для этого использовать.

http://www.modern.ie/en-us/virtualization-tools/

Если вы скачаете Windows XP, то она не будет жрать много памяти, и тот же FF и Chrome на нее можно поставить


(Olexsandr Borisov) #10

10 виртуалок как то не очень[quote=“dzhariy, post:9, topic:3869”]
Если вы скачаете Windows XP, то она не будет жрать много памяти, и тот же FF и Chrome на нее можно поставить
[/quote]

спасибо за совет, но 10 виртуалок не ок


(vmaximv) #11

Не совсем понятно, как вы получили число 10?


(Olexsandr Borisov) #12

от балды, но моя задача может нуждаться и в большем количестве


(vmaximv) #13

Запуск скриптов в разных браузерах одновременно на одной машине практически всегда будет давать нестабильный результат, даже без pywin32, AutoIt и т.д. Поэтому в случае параллельного запуска - вариант один - грид+вм.


(Olexsandr Borisov) #14

спасибо за совет, но 10 виртуалок не ок, думал может есть решение


(vmaximv) #15

Тогда просто синхронизируйте подобные манипуляции с мышью.


(Olexsandr Borisov) #16

переключениями браузеров?


(vmaximv) #17
  1. предварительный move to element для фокуса
  2. синхронизированный окончательный move and click

(Olexsandr Borisov) #18
chrome_selenium = ActionChains(chrome)
element = chrome.find_element_by_id('pageLogo')
chrome_selenium.move_to_element_with_offset(element, 110, 44).click().perform()

не срабатывает, вроде все правильно


(vmaximv) #19

И не должно - в хроме синтетические эвенты.


(Olexsandr Borisov) #20

и что делать?