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")]