- Форум тестировщиков
- → Просмотр профиля: Сообщения: frei_by
Статистика
- Группа: Members
- Сообщений: 177
- Просмотров: 9 369
- Статус: Постоянный участник
- Возраст: Неизвестен
- День рождения: Неизвестен
-
ФИО
Дмитрий
-
Пол
Мужчина
4
Обычный
Инструменты
Друзья
frei_by еще не добавил друзей
Мои сообщения
В теме: Смешно про тестирование
12 июня 2011 - 06:01
В теме: Как с помощью 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 в документе? - Плз поправте если я не прав.
Может быть я чего-то не понимаю, но почему вы сначала делаете
а потом
Как бы сделал я:
1) Выбрать все //a[@href] со страницы и сохранить их куда нибудь, так как у вас - это сделано в переменную если вам нужны URL (Если вы хотите выбрать URL - то вам нужно выбрать не повторяющиеся URL - воспользуйтесь встроенными коллекциями в java. Попробуйте использовать Set.), или просто посчитать getXPathCount("//a[@href]").
2) То, что вам нужно для того, чтобы ходить по ссылкам - это URL ссылки если вы хотите воспользоватся методом open, или сам номер элемента ссылки, если вы хотите по нему кликнуть. click("//a["+i+"]) - как-то так.
3) Я подозреваю, что вам нужно перейти на страницу и найти там какой-то текст - т.е. случайно ходить по ссылкам и по каждой ссылке на которую вы перейдёте - хотя-бы проверить, что это не 404 страница.
Не увидел ни одного assert у вас в тесте. ((
Не увидел у вас критерия случайности - как вы писали "и ходить по ним случайным образом."... ((
PS Сам в java драйвере очень плохо ориентируюсь, возможно написал что нибудь не так.
Могу вам написать как бы я это сделал с помощью PHP драйвера. ))
Во первых я-бы выяснил что такое ссылка на странице.
С точки зрения метода 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
все условия саблюдены
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
selenium.mouseDown(BUTTON_ID) == onmousedown="submitForm('frmLoginPopup')"<a onmousedown="submitForm('frmLoginPopup')" href="javascript:void(0)">Sign In</a>
вёрстальщик - умница. Наверное какая-то очень красивая кнопка, которая при нажатии сверкает и переливается цветами радуги.
при действии click - href="javascript:void(0) - заглушка.
Смысл в том, что на мой взгляд должно помочь onmousedown событие.
- Форум тестировщиков
- → Просмотр профиля: Сообщения: frei_by
- Политика Конфиденциальности
- Правила форума ·