t.me/atinfo_chat Telegram группа по автоматизации тестирования

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

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

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

sikuli не катит

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

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

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

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

type object 'object' has no attribute 'id

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. предварительный move to element для фокуса
  2. синхронизированный окончательный move and click
chrome_selenium = ActionChains(chrome)
element = chrome.find_element_by_id('pageLogo')
chrome_selenium.move_to_element_with_offset(element, 110, 44).click().perform()

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

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

и что делать?