Архив рубрики: xpath и css

Как составлять xpath и css селекторы





В этой записи я хочу поделиться с вами Видеуроком от портала
automated-testing.info, показывать нам все это будет Михаил Поляруш. Вообще как правильно писать css и xpath локаторы я уже писал в статье xpath и css

Но это видео благодаря очень хорошему объяснению раскроет тему настолкьо подробно, что у вас уже никогда не возникнет вопросов, как правильно составить xpath или css селектор, благодаря это видео вы научитесь составлять запросы любой сложности. Лично я от видео был просто в восторге.

Читать далее

xpath и css локаторы





Про xpath- и css-локаторы можно почитать на страничке :

http://seleniumhq.org/docs/appendix_locating_techniques.html#starting-to-use-css-instead-of-xpath

Коротко говоря xpath- и css-локаторы — это два различных типов локаторов для идентификации объектов на веб-странице.

css-локаторы идентифицируют элементы быстрее, но xpath-локаторы надежнее, поэтому во всех автотестах было решено использовать xpath-локаторы.

Для правильного определения и написания xpath локаторов нам поможет firebug (http://firebug.ru/) и плагин для него FireFinder (https://addons.mozilla.org/en-US/firefox/addon/firefinder-for-firebug/)

Устанавливаем firebug и FireFinder.

Заходим на страницу mamba.ru Нажимаем правой кнопкой мыши по ссылке «Вход» — «Аанализировать элемент» Копируем ссылку и получаем следующее:

Вход

В Xpath это будет выглядеть так //a[contains(@class, ‘o-auth’)] ( тег, класс и название класса). (Примечание: можно использовать class, а любой параметр для тега. Например, //a[contains(@href, ‘/?tip=Login’) — нахождение ссылки по уникальному содержимому в ней)

Для CCS-локатора это будет выглядеть как «a.o-auth». Использовать следует следующим образом driver.findElement(By.cssSelector(«a.o-auth»);

Далее в firebug заходим на вкладку Firefinder в поле вставляем наш xpath: //a[contains(@class, ‘o-auth’)] нажимаем «Filter» и получаем следующую ссылку:

Отсюда вывод, что наш xpath верен.

В заключении надо сказать о частных локаторах: id и name. Они являются уникальными для элемента, поэтому поиск по ним происходит значительно быстрее. К сожалению, они есть далеко не всегда.

Формат команды driver.findElement(By.id(«id»)); и driver.findElement (By.name(«name»));

Например, driver.findElement(By.name(«submit_login»)); для кнопки «Войти» на лаере авторизации.
driver.findElement(By.id(«auth:email»)); для поля ввода e-mail на лаере авторизации.
В дальнейшем я еще буду писать подробные статьи о работе с xpath и css