XPath / Selenium не может найти элемент, используя частичный идентификатор с содержит / начать-с

У меня есть следующий HTML-код, созданный с помощью AjaxFormLoop.I '


    
        
        <a id="removerowlink_13b87fdd8b6" href="#" name="removerowlink_13b87fdd8b6">remove</a>
    

    
        
        <a id="removerowlink_13b87fdda70" href="#" name="removerowlink_13b87fdda70">remove</a>
    

Я пытаюсь получить доступ ко второму полю ввода в дочернем 2, используя частичный идентификатор, однако мне не удалось заставить это работать.

Что я'пробовал до сих пор.

String path = "//input[contains(@id,'number_')][2]";
String path = "(//input[contains(@id,'number_')])[2]";

Я могу't даже получить доступ к входу 1, используя 1 вместо 2, однако, если я удаляю [2] и использую только

String path = "// вход [содержит (@Id,»число_')]";Я'

Я могу получить доступ к первому полю без проблем.

Если я использую точный идентификатор, яЯ могу получить доступ к любому полю без проблем.

Мне нужно использовать идентификатор, если это возможно, поскольку в каждой строке t-forminjector гораздо больше полей, которых нет в этом примере.

Реализация с Selenium.

    final String path = "(//input[starts-with(@id,'quantity_')])[2]";

    new Wait() {
        @Override
        public boolean until() {
            return isElementPresent(path);
        }
    }.wait("Element should be present", TIMEOUT);
ResolvedI»

замечаю, что могуКажется, я использую следующие начальные символы / с, чтобы найти любой элемент внутри dom, однако, если я использую полный идентификатор, это работает.

//Partial ID - fails
//*[starts-with(@id,"quantity_")]

//Exact ID - works
//*[starts-with(@id,"quantity_-112409575185705")]

Ответы на вопрос(4)

Ваш ответ на вопрос