2013-05-01 3 views
2

Selenium WebDriver 2.31.0 с Scala 2,9Селен WebDriver наведении не работает

Каждый знает, как сделать парение мыши в Firefox? Я в основном пытаюсь навести курсор на элемент, чтобы отобразить всплывающую подсказку.

Этот код не может перемещать мышь над указанным элементом.

 val webElement = webDriver.findElement(By.cssSelector(myElement.queryString)) 
     val builder = new Actions(webDriver) 
     val hover = builder.moveToElement(webElement).build() 
     hover.perform() 

Я также попытался события мыши без успеха (как описано здесь WebDriver mouseOver is not working properly with selenium grid)

+1

Вы получаете сообщение об ошибке? –

+0

У меня также возникает такая же проблема: когда я запускаю мышь над кодом (тот же код, что и выше), появляется мышь, а затем удаляется. Кто-нибудь, пожалуйста, помогите мне это узнать. Я использую последний браузер Chrome. –

ответ

0

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

Первое, что я проверю, это убедиться, что мой селен обновлен. Сюда входят зависимости, автономные серверные и браузерные драйверы (хотя в этом случае это не применимо, поскольку Firefox включен в Selenium).

Другой возможной (и более вероятной) причиной, более непосредственно связанной с Firefox, является сам Firefox. По моему опыту, обновление Firefox может время от времени ломать некоторые функции селена, особенно зависает. Я обнаружил, что либо обновление селена, либо если обновление не было выпущено, понижение рейтинга Firefox решит проблему.

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

1

Поскольку вы havn't сказали, что вы получили какие-либо ошибки,

  • После сборки(). Выполнить(), обеспечивают способ ожидания сказать, Thread.sleep() на определенное количество времени, так как являются местами, где mousehover выполняется в доли секунды, и может оказаться невозможным увидеть всплывающую подсказку.

  • Makesure локатор правильно (потому что вы можете указать на someother локатор, который не обнаруживается какой-либо подсказки)

  • Makesure вы светлячок поддерживает функциональность MouseHover

код может выглядеть следующим образом так же, как и ваши годы, но дать ему попробовать (JAVA),

 Actions builder = new Actions(driver); 

     WebElement we = driver.findElement(locator); 

     Actions perf= builder.moveToElement(we).build(); 

     perf.perform(); 

     Thread.sleep(1000); 

Вы можете смотреть ссылку для исх: #firefox issue

1

Как ваш вопрос в Firefox, вам, возможно, потребуется включить Native Events с WebDriver, в частности

FirefoxProfile profile = new FirefoxProfile(); 
profile.setEnableNativeEvents(true); 
WebDriver driver = new FirefoxDriver(profile); 

Я должен был сделать это, чтобы получить перетаскивание работает в Firefox на Unix, хотя он работал с тем же кодом в окне Windows.