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

Фотография

selenium ide. как в xpath задать одновременно и номер элемента и его с

selenium ide xpath нумерация

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

#1 ali_aksandr

ali_aksandr

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

  • Members
  • Pip
  • 8 сообщений
  • ФИО:ali_aksandr

Отправлено 22 апреля 2014 - 17:23

На этом примере

 

<html>
   <body>
     <form id="loginForm"
          <input name="username" type="text" />
          <input name="password" type="password" />
          <input name="continue" type="submit" value="Login" />
          <input name="continue" type="button" value="Clear" />
     </form>
   </body>
<html>

 

 

Я хочу выбрать <input name="continue" type="submit" value="Login" />, но при этом только в том случае, если он является именно 3им элементом.

 

 как объединить 2 свойства в одно условие?

 

1. //input[@name='continue']

2. //input[3]

 

если я напишу вместе //input[@name='continue'][3]

- работать не будет, т.к. оно ищет 3ий элемент из всех input со свойством name='continue' - а как видно, здесь только 2 таких элемента - да и не нужен мне "3ий элемент из всех input со свойством ..."

 

мне же нужно, чтобы выбрало именно 3ий элемент при условии, что свойство у него name='continue'. Другие свойства использовать нельзя


  • 0

#2 vmaximv

vmaximv

    Опытный участник

  • Members
  • PipPipPipPip
  • 350 сообщений

Отправлено 22 апреля 2014 - 17:40

//input[@name='continue' and position()=3]
  • 1

#3 ali_aksandr

ali_aksandr

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

  • Members
  • Pip
  • 8 сообщений
  • ФИО:ali_aksandr

Отправлено 23 апреля 2014 - 08:37

Спасибо!!!


  • 0

#4 uga

uga

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

  • Banned
  • Pip
  • 18 сообщений
  • ФИО:uga

Отправлено 23 апреля 2014 - 16:07

На этом примере

...

     </form>
   </body>
<html>

vmaximv, вы уверены, что для этого форума сойдёт и так ?

ali_aksandr, правильно  ли я понял, что это тест не на знания, а на внимательность? или вы тоже - ...?


 

 


#5 ali_aksandr

ali_aksandr

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

  • Members
  • Pip
  • 8 сообщений
  • ФИО:ali_aksandr

Отправлено 23 апреля 2014 - 17:19

 

На этом примере

...

     </form>
   </body>
<html>

vmaximv, вы уверены, что для этого форума сойдёт и так ?

ali_aksandr, правильно  ли я понял, что это тест не на знания, а на внимательность? или вы тоже - ...?

 

хм) нет, это не проверка. просто скопирнул кусок кода отсюда http://selenium2.ru/...ter02-reference

чтобы попроще был пример. как оказалось, там эта ошибка постоянно повторяется


  • 0

#6 uga

uga

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

  • Banned
  • Pip
  • 18 сообщений
  • ФИО:uga

Отправлено 24 апреля 2014 - 19:50

...чтобы попроще был пример. как оказалось, там эта ошибка постоянно повторяется

ali_aksandr,  общение с вами становится всё интереснее:

1. спасибо за указание источника ошибки - может быть, благодаря вам, её исправят.

2.а вот мой ответ на ваш первоначальный вопрос:   //input[3][@name='continue' and position()!=3]

проверьте, данная конструкция успешно найдёт, то, что вам надо (может быть в xpath ошибка и, благодаря мне, её исправят!?)


 

 


#7 yarick

yarick

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

  • Members
  • Pip
  • 36 сообщений
  • ФИО:Новиков Ярослав
  • Город:Екатеринбург

Отправлено 25 апреля 2014 - 12:05

 

2.а вот мой ответ на ваш первоначальный вопрос:   //input[3][@name='continue' and position()!=3]

проверьте, данная конструкция успешно найдёт, то, что вам надо (может быть в xpath ошибка и, благодаря мне, её исправят!?)

 

В данном случае, у Вас указано input[3]. Следовательно нашелся только один элемент и его позиция среди "найденных" ни как не может быть 2,3 и т.д.
Т.е. использование "and position()!=3" - здесь лишнее.


  • 0

#8 uga

uga

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

  • Banned
  • Pip
  • 18 сообщений
  • ФИО:uga

Отправлено 25 апреля 2014 - 15:34

Какой молодец - yarick - всё правильно заметил и объяснил.

ali_aksandr, вы были очень близки к решению, и в следующий раз у вас обязательно всё получится, а здесь вы чуть-чуть ошиблись:

если я напишу вместе //input[@name='continue'][3]

- работать не будет, т.к. оно ищет 3ий элемент из всех input со свойством name='continue'

т.е. вам надо было использовать //input[3][@name='continue']


 

 




Темы с аналогичным тегами selenium ide, xpath, нумерация

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

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