Не удается получить веб-элемент по коллекции xpath (Workfusion) - PullRequest
0 голосов
/ 22 января 2019

В Workfusion я перебираю все элементы на HTML-странице, которые должны быть найдены с помощью xpath:

// * [начат с (@id, "FormView1_hidRevElement")] [$ {i}]

Когда $ {i} = 1, я получаю то, что ожидается, но не когда $ {i}> 1.

На странице HTML у меня есть такие элементы, как:

id = "FormView1_hidRevElement12636"

id = "FormView1_hidRevElement12637"

id = "FormView1_hidRevElement12642"

и т. Д., И т. Д.1020 * выдана ошибка: ...
  Caused by: org.openqa.selenium.NoSuchElementException: Unable to locate element: //*[starts-with(@id,"FormView1_hidRevElement")][2]

...

Что не так?

Ответы [ 2 ]

0 голосов
/ 22 января 2019

Для идентификации следующих элементов:

  • id="FormView1_hidRevElement12636"
  • id="FormView1_hidRevElement12637"
  • id="FormView1_hidRevElement12642"

Вы можетеиспользуйте следующее xpath :

"//*[starts-with(@id,'FormView1_hidRevElement') and contains(@id, '%s')]" % (i)

или

"//*[starts-with(@id,'FormView1_hidRevElement') and contains(@id, '{}')]".format(i)
0 голосов
/ 22 января 2019

Созданный вами XPath неверен, потому что

// * [начат с (@id, "FormView1_hidRevElement")]

вернет соответствующийсчитается как 3 для следующих идентификаторов

id = "FormView1_hidRevElement12636"

id = "FormView1_hidRevElement12637"

id = "FormView1_hidRevElement12642"

10151016 * И каждое совпадение идентификатора равно 1, тогда, очевидно, условие> 1 вызовет ошибку, потому что его не существует.

Попробуйте этот XPath:

(// * [начинается с (@id, "FormView1_hidRevElement")]) [$ {i}]

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