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

головоломка "кликни на ссылку"


(jamaica) #1

помогите решить головоломку

Суть: есть ссылка вида 

<a class="user-box user-box-login" href="/user/login">

     <span class="user-box-link-1">Войти</span>

     <span class="user-box-link-2"></span>
</a>
 
ide без проблем жмет по локатору link=Войти 
а в java никак немогу нажать эту ссылку
 
driver.findElement(By.linkText("Войти")).click(); //элемент не найден
driver.findElement(By.xpath("//div[@id='header-bottom-inner-2']/a")).click();  //проходит без действия
driver.findElement(By.xpath("//a[@class='user-box user-box-login']")).click(); //проходит без действия
 
адрес сайта http://art.nso.ru/

 


(Vol) #2

При клике на By.xpath("//span[@class='user-box-link-2']") у меня выскакивает ексцепшн - "org.openqa.selenium.ElementNotVisibleException: Element is not currently visible and so may not be interacted with


(Pnevmoslon) #3

 webDriver.findElement(By.xpath("//a[@class=\"user-box user-box-login\"]")).click(); у меня кликнуло.


(Taras) #4

по моему так и должно работать, ничего тут такого сверх неординарного нету) простой хпас


(Vitalik) #5

кстати, By.linkText у меня иногда не срабатывает без причины, поэтому вместо нее я всегда использую следующую фишку (например):

By.path ("//a[text()='Войти']")

или так:

By.path ("//a[contains(text(), 'ой')]")

(правда, с кирилицей пока не пересекался, может это тоже делает проблемы)

 

Горячо советую пользоваться  Файрфайндером (в Файрфоксе типо) чтобы вручную проверять xpaths. хотя и клик в селениуме тоже может пройти бесследно как с белых яблонь дым.

А вот еше одна фишка - если в браузере зум не 100% - будет селениум глючить не по детски в самых неожиданных местах, так что бесследно пропавший клик покажется лебединой песней. Жми контроль-ноль, не пожалеешь