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

Фотография

Проблемы с таблицами в Selenium IDE


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 14

#1 muskatus

muskatus

    Новый участник

  • Members
  • Pip
  • 18 сообщений

Отправлено 11 января 2012 - 14:25

Всем привет... Тут столкнулся с такой проблемкой. Есть форма которая выводит список(таблицу) объектов(всегда разный). После вывода мне нужно нажать на ссылку находящуюся в первой строке и 3-ем столбце данной таблицы.
Но есть некоторые проблемы, в данной ячейке(где находится линк) есть посторонний текст. Т.е. например:

<div class="table-new">
<table>
<tbody>
<tr>
<td>
<nobr>Москва г</nobr>
</td>
<td> 2 </td>
<td>
Левый текст,
<br>
<a href="/123/234/456">текст ссылки</a>
</td>

бла бла бла

Как мне сказать селениуму чтобы он тыкнул на ссылку /123/234/456 ??? П.с. еще раз напоминаю ссылка всегда рандомная так же как и весь текст. Единственное что она всегда находится в третьем столбце первой строки.
  • 0

#2 point80

point80

    Новый участник

  • Members
  • Pip
  • 19 сообщений
  • ФИО:Дормидонтов Семён

Отправлено 11 января 2012 - 14:33

Всем привет... Тут столкнулся с такой проблемкой. Есть форма которая выводит список(таблицу) объектов(всегда разный). После вывода мне нужно нажать на ссылку находящуюся в первой строке и 3-ем столбце данной таблицы.
Но есть некоторые проблемы, в данной ячейке(где находится линк) есть посторонний текст. Т.е. например:

<div class="table-new">
<table>
<tbody>
<tr>
<td>
<nobr>Москва г</nobr>
</td>
<td> 2 </td>
<td>
Левый текст,
<br>
<a href="/123/234/456">текст ссылки</a>
</td>

бла бла бла

Как мне сказать селениуму чтобы он тыкнул на ссылку /123/234/456 ??? П.с. еще раз напоминаю ссылка всегда рандомная так же как и весь текст. Единственное что она всегда находится в третьем столбце первой строки.


Если ячейка со ссылкой одна на всю таблицу - тогда click("css=div.table-new>table a")
Если несколько - click("//div[@class='table-new']/table/tbody/tr[1]/td[3]/a")
  • 1

#3 muskatus

muskatus

    Новый участник

  • Members
  • Pip
  • 18 сообщений

Отправлено 11 января 2012 - 17:36


Всем привет... Тут столкнулся с такой проблемкой. Есть форма которая выводит список(таблицу) объектов(всегда разный). После вывода мне нужно нажать на ссылку находящуюся в первой строке и 3-ем столбце данной таблицы.
Но есть некоторые проблемы, в данной ячейке(где находится линк) есть посторонний текст. Т.е. например:

<div class="table-new">
<table>
<tbody>
<tr>
<td>
<nobr>Москва г</nobr>
</td>
<td> 2 </td>
<td>
Левый текст,
<br>
<a href="/123/234/456">текст ссылки</a>
</td>

бла бла бла

Как мне сказать селениуму чтобы он тыкнул на ссылку /123/234/456 ??? П.с. еще раз напоминаю ссылка всегда рандомная так же как и весь текст. Единственное что она всегда находится в третьем столбце первой строки.


Если ячейка со ссылкой одна на всю таблицу - тогда click("css=div.table-new>table a")
Если несколько - click("//div[@class='table-new']/table/tbody/tr[1]/td[3]/a")


Спс, завтра проверю..... П.с. сорь за такие глупые вопросы, первый день с силениумом......
  • 0

#4 astenix

astenix

    Специалист

  • Members
  • PipPipPipPipPip
  • 906 сообщений
  • ФИО:Лёша Лупан
  • Город:Кишинев


Отправлено 12 января 2012 - 00:01

П.с. сорь за такие глупые вопросы, первый день с силениумом......

Сорь, бро, но СЕЕЕЕЕЕЕЕЕЕЕЕлениум, Се!
  • 0

Software Testing Glossary - простыми словами о непростых словах.


#5 muskatus

muskatus

    Новый участник

  • Members
  • Pip
  • 18 сообщений

Отправлено 12 января 2012 - 06:25


П.с. сорь за такие глупые вопросы, первый день с силениумом......

Сорь, бро, но СЕЕЕЕЕЕЕЕЕЕЕЕлениум, Се!

:-)
  • 0

#6 muskatus

muskatus

    Новый участник

  • Members
  • Pip
  • 18 сообщений

Отправлено 16 января 2012 - 13:18

Всем еще раз привет, снова столкнулся с проблемой. Проблема заключается в сравнении целого и не целого числа -))
Т.е.
|storeText | css=span[name="price"] | maxprice |
|storeEval | if (storedVars['maxprice'].replace(" млн руб.", "") <= 10 ) {} else {alert("Цена объекта больше указанной или не определена")} | maxprice |

когда у меня в переменной maxprice получается целое число, то все нормально сравнивается, когда не целое не сравнивается -(((( т.е. почему то не выполняется условие 9,2 <= 10 например.
  • 0

#7 astenix

astenix

    Специалист

  • Members
  • PipPipPipPipPip
  • 906 сообщений
  • ФИО:Лёша Лупан
  • Город:Кишинев


Отправлено 16 января 2012 - 13:37

muskatus,
  • ошибка = 9,2
  • правильно = 9.2

Если вам подойдет такое предложение: сделайте еще одну замену в тексте переменной - запятую на точку.
  • 0

Software Testing Glossary - простыми словами о непростых словах.


#8 muskatus

muskatus

    Новый участник

  • Members
  • Pip
  • 18 сообщений

Отправлено 16 января 2012 - 13:43

muskatus,

  • ошибка = 9,2
  • правильно = 9.2

Если вам подойдет такое предложение: сделайте еще одну замену в тексте переменной - запятую на точку.

Ну да, тут 2 варианта либо яваскриптовым ParseFloat либо замена , на . Но в maxprice не обязательно будут попадать числа с запятой, могут и целые быть. Что лучше?
  • 0

#9 muskatus

muskatus

    Новый участник

  • Members
  • Pip
  • 18 сообщений

Отправлено 16 января 2012 - 13:59


muskatus,

  • ошибка = 9,2
  • правильно = 9.2

Если вам подойдет такое предложение: сделайте еще одну замену в тексте переменной - запятую на точку.

Ну да, тут 2 варианта либо яваскриптовым ParseFloat либо замена , на . Но в maxprice не обязательно будут попадать числа с запятой, могут и целые быть. Что лучше?

|storeText | css=span[name="price"] | maxprice |
|storeEval | storedVars['maxprice'].replace(" млн руб.", "") | maxprice |
|storeEval | if (storedVars['maxprice'].replace(",", ".") <= 10 ) {} else {alert("Цена объекта больше указанной или не определена")} | maxprice |

Так работает, но корректно ли написано?
  • 0

#10 astenix

astenix

    Специалист

  • Members
  • PipPipPipPipPip
  • 906 сообщений
  • ФИО:Лёша Лупан
  • Город:Кишинев


Отправлено 16 января 2012 - 14:14

Так работает, но корректно ли написано?

Ну, некрасиво, но работает ведь :)

Но в maxprice не обязательно будут попадать числа с запятой, могут и целые быть. Что лучше?


Лучше то, что работает "здесь и сейчас".

Согласно http://www.w3schools..._parsefloat.asp parsefloat спокойно разрулит и числа с запятой, и числа без них.

Parse different strings:
<script type="text/javascript">

document.write(parseFloat("10") + "<br />");
document.write(parseFloat("10.33") + "<br />");
document.write(parseFloat("34 45 66") + "<br />");
document.write(parseFloat(" 60 ") + "<br />");
document.write(parseFloat("40 years") + "<br />");
document.write(parseFloat("He was 40") + "<br />");

</script>

The output of the code above will be:
10
10.33
34
60
40
NaN

Из текста "40 years" оно оставит только цифры (тоже решение вопроса с заменой).

Но вот если будет строка "years 40", тогда будет ой - NaN.

Опять же, если вместо точки будет запятая, то функция тупо отрубит все то, что идет после запятой. "10,33" превратится в "10".
  • 0

Software Testing Glossary - простыми словами о непростых словах.


#11 muskatus

muskatus

    Новый участник

  • Members
  • Pip
  • 18 сообщений

Отправлено 16 января 2012 - 19:01

Ну, некрасиво, но работает ведь :)

Ну надо к чему то стремится, поэтому , если Вас не затруднит, может покажете класс и напишете по правильному и красиво -))) П.с. ну заодно может объясните как тормозить тест если одно из условий не выполняется?( Я пока Нуб в этом и поэтому ошибки вызываю алертами, до другого пока что не додумал -(((
С Силениумом 5-ый день, пока что радует!!!
  • 0

#12 astenix

astenix

    Специалист

  • Members
  • PipPipPipPipPip
  • 906 сообщений
  • ФИО:Лёша Лупан
  • Город:Кишинев


Отправлено 16 января 2012 - 19:12

Ну надо к чему то стремится, поэтому, если Вас не затруднит, может покажете класс и напишете по правильному и красиво -)))

Николай Заболоцкий
НЕКРАСИВАЯ ДЕВОЧКА

Среди других играющих детей
Она напоминает лягушонка.
Заправлена в трусы худая рубашонка,
Колечки рыжеватые кудрей
Рассыпаны, рот длинен, зубки кривы,
Черты лица остры и некрасивы.

Двум мальчуганам, сверстникам её,
Отцы купили по велосипеду.
Сегодня мальчики, не торопясь к обеду,
Гоняют по двору, забывши про неё,
Она ж за ними бегает по следу.
Чужая радость так же, как своя,
Томит её и вон из сердца рвётся,
И девочка ликует и смеётся,
Охваченная счастьем бытия.

Ни тени зависти, ни умысла худого
Ещё не знает это существо.
Ей всё на свете так безмерно ново,
Так живо всё, что для иных мертво!

И не хочу я думать, наблюдая,
Что будет день, когда она, рыдая,
Увидит с ужасом, что посреди подруг
Она всего лишь бедная дурнушка!

Мне верить хочется, что сердце не игрушка,
Сломать его едва ли можно вдруг!
Мне верить хочется, что чистый этот пламень,
Который в глубине её горит,
Всю боль свою один переболит
И перетопит самый тяжкий камень!

И пусть черты её нехороши
И нечем ей прельстить воображенье,-
Младенческая грация души
Уже сквозит в любом её движенье.

А если это так, то что есть красота
И почему её обожествляют люди?
Сосуд она, в котором пустота,
Или огонь, мерцающий в сосуде?

© аж 1955

Вот с кодом та же ерунда. Главное, чтобы работало. Делать его красивым - это потом, если будет необходимость.

Стремиться надо к гармонии, а не к "чему-то там..."

П.с. ну заодно может объясните как тормозить тест если одно из условий не выполняется?( Я пока Нуб в этом и поэтому ошибки вызываю алертами, до другого пока что не додумал -(((

В каком смысле и каким образом его надо тормозить?

Можно алертами, ведь если он работает в Selenium IDE, ничего иного и не требуется, все равно за работающими тестами нужно внятно и откровенно приглядывать.

Алерты хороши тем, что тормозят выполнение ровно настолько, насколько это нужно гомосапиенсу.

Если не приглядывать, тогда - WebDriwer, но это уже очень другой уровень.

Можно перекидывать выполнение теста в самый конец файла через goToLabel. Но в таком случае тест будет помечен зеленкой, ведь он завершен корректно :)

Можно паузу сделать, но это редко бывает обоснованно.

С Силениумом 5-ый день, пока что радует!!

С сЕлениумом, бро, через буковку "е" ;)
  • 0

Software Testing Glossary - простыми словами о непростых словах.


#13 muskatus

muskatus

    Новый участник

  • Members
  • Pip
  • 18 сообщений

Отправлено 16 января 2012 - 19:32

Ну надо к чему то стремится, поэтому, если Вас не затруднит, может покажете класс и напишете по правильному и красиво -)))

Николай Заболоцкий
НЕКРАСИВАЯ ДЕВОЧКА

Среди других играющих детей
Она напоминает лягушонка.
Заправлена в трусы худая рубашонка,
Колечки рыжеватые кудрей
Рассыпаны, рот длинен, зубки кривы,
Черты лица остры и некрасивы.

Двум мальчуганам, сверстникам её,
Отцы купили по велосипеду.
Сегодня мальчики, не торопясь к обеду,
Гоняют по двору, забывши про неё,
Она ж за ними бегает по следу.
Чужая радость так же, как своя,
Томит её и вон из сердца рвётся,
И девочка ликует и смеётся,
Охваченная счастьем бытия.

Ни тени зависти, ни умысла худого
Ещё не знает это существо.
Ей всё на свете так безмерно ново,
Так живо всё, что для иных мертво!

И не хочу я думать, наблюдая,
Что будет день, когда она, рыдая,
Увидит с ужасом, что посреди подруг
Она всего лишь бедная дурнушка!

Мне верить хочется, что сердце не игрушка,
Сломать его едва ли можно вдруг!
Мне верить хочется, что чистый этот пламень,
Который в глубине её горит,
Всю боль свою один переболит
И перетопит самый тяжкий камень!

И пусть черты её нехороши
И нечем ей прельстить воображенье,-
Младенческая грация души
Уже сквозит в любом её движенье.

А если это так, то что есть красота
И почему её обожествляют люди?
Сосуд она, в котором пустота,
Или огонь, мерцающий в сосуде?

© аж 1955

Вот с кодом та же ерунда. Главное, чтобы работало. Делать его красивым - это потом, если будет необходимость.

Стремиться надо к гармонии, а не к "чему-то там..."

П.с. ну заодно может объясните как тормозить тест если одно из условий не выполняется?( Я пока Нуб в этом и поэтому ошибки вызываю алертами, до другого пока что не додумал -(((

В каком смысле и каким образом его надо тормозить?

Можно алертами, ведь если он работает в Selenium IDE, ничего иного и не требуется, все равно за работающими тестами нужно внятно и откровенно приглядывать.

Алерты хороши тем, что тормозят выполнение ровно настолько, насколько это нужно гомосапиенсу.

Если не приглядывать, тогда - WebDriwer, но это уже очень другой уровень.

Можно перекидывать выполнение теста в самый конец файла через goToLabel. Но в таком случае тест будет помечен зеленкой, ведь он завершен корректно :)

Можно паузу сделать, но это редко бывает обоснованно.

С Силениумом 5-ый день, пока что радует!!

С сЕлениумом, бро, через буковку "е" ;)

:-D

Стремиться надо к гармонии, а не к "чему-то там..."

Возможно, но учиться все делать правильно, надо сразу...
  • 0

#14 astenix

astenix

    Специалист

  • Members
  • PipPipPipPipPip
  • 906 сообщений
  • ФИО:Лёша Лупан
  • Город:Кишинев


Отправлено 16 января 2012 - 19:44

Стремиться надо к гармонии, а не к "чему-то там..."

Возможно, но учиться все делать правильно, надо сразу...

Ну...

Все начинается с того, что ученик учится делать что-то вообще. Частности и детали приходят потом. А дъявол как раз в детальках :hi:

PS нет необходимости в таком массивном цитировании при ответах.
  • 1

Software Testing Glossary - простыми словами о непростых словах.


#15 muskatus

muskatus

    Новый участник

  • Members
  • Pip
  • 18 сообщений

Отправлено 16 января 2012 - 20:07

Ну...

Все начинается с того, что ученик учится делать что-то вообще. Частности и детали приходят потом. А дъявол как раз в детальках :hi:

PS нет необходимости в таком массивном цитировании при ответах.

Сорь за флуд
Мерси за ответы, буду мануалить ;-)
  • 0


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных