Перейти к содержимому

frei_by

Регистрация: 21 сен 2010
Offline Активность: 19 июн 2011 14:47
-----

Мои сообщения

В теме: Смешно про тестирование

12 июня 2011 - 06:01

Прикрепленный файл  Dilbert - 2011-06-12.png   355,28К   93 Количество загрузок:

В теме: Как с помощью xpath создать массив ссылок страницы и ходить по ним

18 мая 2011 - 14:45

А как вообще правильно указывать xpath для того чтобы он переходил по ссылке.
Я делаю так selenium.click(xpath"id('content')/x:div[1]/x:div/x:p[1]/x:a[2]");
но ничего не происходит. Он по ссылке не переходит


С помощью xpath вы можете:
1) Найти элемент который релазиует событие onclick (простыми словами найти ссылку по которой кликнуть) - и использовать этот xpath в методе click("//a[3]") - кликнет по 3 найденной ссылке от корня в документе
2) Выбрать атрибуты href у всех ссылок в массив, и пройтись по массиву по значениям строковым URL подставляя их в метод open.
Я делаю так selenium.click(xpath"id('content')/x:div[1]/x:div/x:p[1]/x:a[2]");
- не правильный xpath.
по видимому -
selenium.click("//id[@name='content']/div/div/p/a[2]");
- если я не ошибаюсь по поводу ...xpath"id('content') - если элемент первый - то для него не нужно писать [1].

В теме: Как с помощью xpath создать массив ссылок страницы и ходить по ним

18 мая 2011 - 14:28

Честно говоря, я бы ни за что так как вы делать бы не стал.

Во первых я-бы выяснил что такое ссылка на странице.

С точки зрения метода String array[]= selenium.getAllLinks(); будут выбраны если я не ошибаюсь, все ID на теги типа <a>. (http://ru.wikipedia.....B5.D0.B3.D0.B8)
Но с точки зрения js на странице есть ещё элементы реализующие поведение onclick="document.load"... - что с точки зрения пользователя также будут являтся ссылками.

Во вторых выбрать все ссылки на странице - это не тест, так как нет assert. Если на странице не нашлось ни одной ссылки - можно ли считать такой тест заваленным? Это скорее подготовка к тесту.

Выбрать все ссылки на странице можно с помощью xpath="//a" Почему вы пишите "xpath=(//x:a)" - для меня загадка, потому что с точки зрения xpath вы ищите все ноды a принадлежащие к namespace=x. У вас есть такой namespace в документе? - Плз поправте если я не прав.

Может быть я чего-то не понимаю, но почему вы сначала делаете
String array[]= selenium.getAllLinks();

а потом
for(i=0; i<=array.length; i++)
 {
 array[i] = selenium.getText("dom=document.getElementsByTagName('a')[" + i + "]");
- это для меня тоже не понятно.

Как бы сделал я:
1) Выбрать все //a[@href] со страницы и сохранить их куда нибудь, так как у вас - это сделано в переменную если вам нужны URL (Если вы хотите выбрать URL - то вам нужно выбрать не повторяющиеся URL - воспользуйтесь встроенными коллекциями в java. Попробуйте использовать Set.), или просто посчитать getXPathCount("//a[@href]").

2) То, что вам нужно для того, чтобы ходить по ссылкам - это URL ссылки если вы хотите воспользоватся методом open, или сам номер элемента ссылки, если вы хотите по нему кликнуть. click("//a["+i+"]) - как-то так.

3) Я подозреваю, что вам нужно перейти на страницу и найти там какой-то текст - т.е. случайно ходить по ссылкам и по каждой ссылке на которую вы перейдёте - хотя-бы проверить, что это не 404 страница.

Не увидел ни одного assert у вас в тесте. ((
Не увидел у вас критерия случайности - как вы писали "и ходить по ним случайным образом."... ((

PS Сам в java драйвере очень плохо ориентируюсь, возможно написал что нибудь не так.
Могу вам написать как бы я это сделал с помощью PHP драйвера. ))

В теме: Смешно про тестирование

21 апреля 2011 - 09:21

тестировщик 12:16
The character "#" is unsafe and should
always be encoded because it is used in World Wide Web and in other
systems to delimit a URL from a fragment/anchor identifier that might
follow it.
тестировщик 12:17
http://www./#site.ru/
try it
тестировщик 12:18
http://www.#site.ru/
программист 12:18
так вот я и про то что
была все ок
пока ты не предложил использовать встроеные функции пхп
которые напрочь разламали все
=))
тестировщик 12:18
а ты и согласился?
ну и кто из нас програмист?
программист 12:19
тут типа такая фишка я должен делать то что скажут
=)
не понравилась одно на тебе то что ты хочешь
=)
если мое лучше твоего
тестировщик 12:19
ну так не проверяй тип переменных
программист 12:19
ну так беда в том что ты ...
я и не проверяю
=)
тестировщик 12:20
и register_globals включи
программист 12:20
в пхп это не критично
и что
тестировщик 12:20
и в качестве пароля админского используй 123
программист 12:20
я так и делаю
тестировщик 12:20
ок?
программист 12:20
все что ты написаол
имено так
программист12:21
не проверяй тип переменных , register_globals on, админского используй 123
все условия саблюдены

В теме: не нажимается кнопка Логин, хотя я её нажимал при записи

20 апреля 2011 - 09:01

<a onmousedown="submitForm('frmLoginPopup')" href="javascript:void(0)">Sign In</a>

selenium.mouseDown(BUTTON_ID) == onmousedown="submitForm('frmLoginPopup')"
вёрстальщик - умница. Наверное какая-то очень красивая кнопка, которая при нажатии сверкает и переливается цветами радуги.

при действии click - href="javascript:void(0) - заглушка.

Смысл в том, что на мой взгляд должно помочь onmousedown событие.