Переход по вкладкам на странице


(Kseniya) #1

Поиском по форуму нашла только переход по вкладкам браузера. А мне нужно перейти по вкладкам страницы. То есть на странице есть вкладки типа меню. Есть общий id у списка этих закладок. А каждая из них определена примерно так:

<li class="item state-default state-active"><a class="link" href=bla-bla-bla">Общая</a></li> 

Если нажать на пункт меню (вручную), то открывается закладка на той же странице. Если перейти по URL, то открывается не то, что нужно. 

Как можно сделать навигацию по этим вкладкам?

(желательно на C#)


(Mykhailo Poliarush) #2

а можете показать внешний вид вкладки?

в общем, я думаю это надо делать через класс Actions

http://automated-testing.info/search/node/Actions


(asolntsev) #3

Надо найти элемент (заголовок вкладки) по тексту.

webdriver.findElement(By.id("your-menu-id")).findElement(By.linkText("Общая")).click()


(Alexander Petrovich) #4

Что-то я не совсем понял суть проблемы. Вы не можете кликнуть в нужную вкладку?


(Sergey Korol) #5

Из имени класса вкладки меню смею предположить, что она подсвечивается при наведении, динамически изменяя свое имя. Причем, скорее всего остальные вкладки, при этом, отличаются лишь нон-эктив стейтом (или вообще без стейта), т.е. не имеют уникальных идентификаторов. Как вариант, можно вначале навести, потом кликнуть на элемент. По link text лучше не искать, ибо смена локализации добавит дополнительных проблем по изменению локаторов. Можно также найти "в лоб" - по xpath, взяв корневой элемент списка (меню), и кликнув по li с соответствующим номером, к примеру, "//ul[@id='your_menu_id']/li[1]" or "//div[@id='your_menu_id']//li[1]" (для боле точного овтета нужно смотреть больший участок кода страницы).


(Kseniya) #6

Не получается :( Не может найти такой элемент.


(Kseniya) #7

Да, не могу кликнуть/выбрать нужную вкладку.


(Kseniya) #8

Не знаю, как насчет динамически изменяющегося имени, но про остальное вы правы. Вкладки действительно отличаются лишь эктив-стейтом.

Навести, а потом нажать - это делается с помощью Actions, о которых шла речь в первом комментарии? 


(Kseniya) #9

Спасибо,

пошла изучать.