Уже было некоторое обсуждение N-го элемента в XPath:
XPath-запрос для получения n-го экземпляра элемента
Получить N-й дочерний элементузел, использующий xpath
XPath и PHP: парсинг n-го экземпляра элемента
Я использую Selenium и PHPUnit для функционального тестирования.Моя проблема в том, что на странице с большой формой N-й селектор не работает.У меня есть 80 полей ввода (используя вызов Selenium getXpathCount ('// input'), чтобы получить точное число) - и я хотел бы перебрать эти 80 полей и набрать какой-нибудь текст.То, что я уже пробовал и не работает (N - это индексная переменная):
//input[N]
//input[position()=N]
input[N]
(//input)[N]
(.//input)[N]
css=input:nth-of-type(N)
И все смеси, перечисленные выше.Обычно запускается исключение, говорящее: элемент не найден при N = 2. Я пробовал несколько инструментов XPath для браузеров, так что в качестве собственных расширений, таких как XPathEvaluator в Chrome - почти все дали мне правильные результаты.Так что, похоже, парсер Seleniums XPath работает немного по-другому.
Что вы думаете?Я что-то пропустил?
Обновление: вот мое решение: getAllFields (): http://release.seleniumhq.org/selenium-remote-control/0.9.0/doc/java/com/thoughtworks/selenium/DefaultSelenium.html#getAllFields(), а затем я перебираю.
Это на самом деле не решаетПервоначальная проблема, поэтому я все еще заинтересован в ответе.
Спасибо!