2015-04-14 1 views
1

Стандартный Селен наведении курсора мыши/механизм парения не работаетПри тестировании smartmenus в Селен, подменю не получить воздействию при наведении курсора мыши над

Actions builder = new Actions(driver);     
builder.click(actionsButton).moveToElement(addNewLink).build().perform(); 

Однако нажмите действия неожиданно работает:

Actions builder = new Actions(driver); 
builder.click(actionsButton).click(addNewLink).build().perform(); 

Какой прямо противоположное тому, что происходит, когда пользователь просматривает меню - они становятся видимыми при наведении и закрываются при нажатии.

ответ

2

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

Независимо от того, что Selenium делает для имитации движения мыши, не убеждает Smartmenus в том, что настоящая мышь присутствует.

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

я остановился на обходной путь, который пытается нажать и, в случае неудачи, переключается опекать:

Actions builder = new Actions(driver); 
    builder.click(actionsButton).click(addNewLink).build().perform(); 
    try { 
     wait.until(ExpectedConditions.visibilityOf(pcLink)); 
    } 
    catch (TimeoutException e) { 
     builder.click(actionsButton).moveToElement(addNewLink).build().perform(); 
     wait.until(ExpectedConditions.visibilityOf(pcLink)); 
    } 
    pcLink.click(); 
+0

Может быть, изменив пользовательский агент селена сделал бы выходку. – sidney

 Смежные вопросы

  • Нет связанных вопросов^_^