Добрый день, коллеги, помогите разобраться в такой проблеме:
имеется кнопка 'Sign out', которая становится активной и видимой только после наведения мышки на меню.
Я записала тест с помощью IDE, тест кнопку видит и прекрасно отрабатывает. Но после экспорта в Java я получаю ексепшн org.openqa.selenium.ElementNotVisibleException и даже визуально вижу, что мышка на меню не наводится и соответственно искомая кнопка не видна.
В IDE это выглядит так
<tr> <td>mouseOver</td> <td>css=div.login-top</td> <td></td> </tr> <tr> <td>click</td> <td>//div[@class='login-hover']//a[.='Sign out']</td> <td></td> </tr> <tr> <td>waitForElementPresent</td> <td>css=div.login-text</td> <td></td> </tr>
В Java экспортируется так:
public class UserLogout extends ru.st.selenium.pages.TestBase { private boolean acceptNextAlert = true; private StringBuffer verificationErrors = new StringBuffer(); @Test public void testUserLogout() throws Exception { // ERROR: Caught exception [ERROR: Unsupported command [mouseOver | css=div.login-top | ]] driver.findElement(By.xpath("//div[@class='login-hover']//a[.='Sign out']")).click(); for (int second = 0;; second++) { if (second >= 60) fail("timeout"); try { if (isElementPresent(By.cssSelector("div.login-text"))) break; } catch (Exception e) {} Thread.sleep(1000); } } private boolean isElementPresent(By by) { try { driver.findElement(by); return true; } catch (NoSuchElementException e) { return false; } } private String closeAlertAndGetItsText() { try { Alert alert = driver.switchTo().alert(); String alertText = alert.getText(); if (acceptNextAlert) { alert.accept(); } else { alert.dismiss(); } return alertText; } finally { acceptNextAlert = true; } } }
Я в Java по нулям, помогите, пожалуйста, исправить проблему.
Спасибо!
З.Ы. Трейс прикрепила.