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

Несколько вопросов "Как сделать" и "Как должно работать"


(apetrovskiy) #1

Добрый день, появились вот такие вопросы (экспериментировал на файрфоксе и хроме, C#, 2.25):

1) страница с ASP-формой, есть меню, которое появляется при наведении курсора. После попадания на страницу к меню практически невозможно подступиться: оно открывается и мгновенно закрывается.

1.1) кстати, метод в Actions .moveToElement(IWebElement) должен двигать сам курсор мыши или это подразумеваемое понятие. Это вообще какое-то бажное место в селениуме (есть бородатое ишью). Потому что активность меню возникает, а сам курсор остаётся на месте.

1.2) клики в этих Actions тоже какие-то нездоровые - к примеру, чтобы получить нормальный клик, приходится делать даблклик.

Но если поменять фокус (т.е., к примеру, перейти в консоль пауэршелл), то внезапно код начинает работать и по уровням меню можно пройти. Как будто, форме надо было получить системные мессаги (DoEvents()/yield()).

Неразвёрнутое меню кликаться через драйвер не хочет.

Вопросы: 1) без сторонних средств, селениумом, как обходятся такие вещи (без смены фокуса меню не получить)? джаваскрипт?

1.1) таскает ли метод .moveToElement(IWEbElement) курсор по браузеру?

2) возился с переключением на другое окно или фрейм. switchTo().window('window name")  .switchTo.frame(index)

Вопросы: как должно работать переключение между окнами - между табами в браузере (открыто в новом табе) или между окнами одного процесса (открыть в новом окне). Вротое почему-то не работает. Селениумом сделать это можно или надо сторонние средства?

 


(apetrovskiy) #2

Пробовал код отсюда (на C#) http://automated-testing.info/forum/fiksirovanie-navedeniya-myshi-na-obekt#comment-2704

мува как не было, так и нет. Ни на хроме, ни в файрфоксе.

 

Попробовал и отсюда: http://automated-testing.info/forum/rabota-so-skryvayushcheysya-formoy#comment-1763

:)

                         ((IHasInputDevices)this.InputObject).Mouse.MouseMove(
                            ((RemoteWebElement)webElement).Coordinates);

со смещением и без оного. Ну не имитирует почивший в бозе hover() и всё тут! Хоть прям через UIAutomation делай :) Но как же у других сработало? Может, на прошлых версиях драйверов?

 


(Mykhailo Poliarush) #3

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

1. да обход в основном через javascript

2. да movelement у меня работал, надо разбираться с конкретной ситуацией, может быть это баг в хроме, кто знает

3. а на счет последнего можно посмотреть http://automated-testing.info/knowledgebase/article/webdriver-features-robota-s-neskolkimi-oknami-vkladkami-odnovremenno-pri


(apetrovskiy) #4

Про 3. понял - это не тайтл, и не подное имя окна "title - Mozilla Firefox". Это так называемый хэндл :)