лучший способ обнаружить элемент на веб-странице для seleniumRC в Java - PullRequest
0 голосов
/ 15 марта 2011

Каков наилучший способ обнаружения элемента на веб-странице для автоматического тестирования с использованием SeleniumRC с использованием Java ?. Я знаю, что есть элементы XPath и CSS, но какой из них лучше?

спасибо! Нитин

Ответы [ 5 ]

4 голосов
/ 28 апреля 2011

X-Path действительно точны.Тем не менее, они также очень хрупкие.Любые изменения на веб-сайте, которые меняют ситуацию, могут нарушить ваши тесты.Идентификаторы являются наименее хрупкими, так как не имеет значения, если вы изменили a, ваши тесты всегда найдут его.

2 голосов
/ 03 апреля 2011

На мой взгляд, наиболее точным способом является XPath, поскольку вы можете использовать XPath для описания точного положения элемента в DOM, однако в некоторых случаях CSS-локаторы работают лучше, чем XPath.

Использование локатора идентификатора селена является наиболее простым, но если искомый элемент не имеет идентификатора, это не всегда полезно.

Самый большой минус при использовании XPath - это производительность с Selenium RC и браузерами с плохими механизмами рендеринга JavaScript (Think IE6 / IE7). Была проделана большая работа, чтобы попытаться исправить это, так что если вы используете правильно сформированные XPath, которые выполняют поиск только в определенных частях DOM, эта проблема должна быть минимальной. Реализация веб-драйвера Selenium намного быстрее.

На самом деле нет единого ответа, это зависит от того, что вы хотите от локатора, и какие браузеры вы тестируете. Я лично использую XPath в 99% случаев.

Лично я использую XPath почти исключительно со случайным локатором CSS.

1 голос
/ 15 марта 2011

Xpath - это способ, который я использовал.Это поможет, если у ваших узлов есть уникальные идентификаторы.

1 голос
/ 21 марта 2011

Лучший и быстрый способ найти элемент - по id. Во многих браузерах время нахождения элемента по его идентификатору является линейным или даже постоянным. очень быстро.

Например, если задан элемент, определенный как:

<input type="text" name="passwd" id="passwd-id" />

Вы должны найти это так:

selenium.type("passwd-id", "test");

Или, если вы используете API webdriver:

element = driver.findElement(By.id("passwd-id"));

Если элементы на ваших страницах не имеют идентификаторов, добавьте их! или попросите разработчиков добавить их!

Следующий лучший способ найти элементы - по имени. Это также довольно быстро, особенно если имя уникально на странице.

Например:

selenium.type("passwd", "test");

Или, если вы используете API webdriver:

element = driver.findElement(By.name("passwd"));

Третий способ поиска элемента - использование CSS-селекторов. Современные браузеры очень хорошо умеют находить элементы таким образом.

Худший способ найти элемент - использовать xpath. xpath медленный, хрупкий и трудно читаемый.

Саймон Стюарт, крупный автор Selenium, отвечает на этот вопрос здесь: http://www.youtube.com/watch?v=oX-0Mt5zju0&feature=related искать метку времени 39: 00

Здесь также есть хорошая информация: http://seleniumhq.org/docs/02_selenium_ide.html#locating-elements

1 голос
/ 15 марта 2011

CSS-селекторы быстрее, но не всегда доступны;Вы всегда можете положиться на XPath, но это может сказаться на производительности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...