У меня есть HTML как этот
<tr>
<td>
<label>...</label>
</td>
<td>
<input>...</input>
</td>
<td>
</td>
</tr>
<tr>
<td>
</td>
<td>
</td>
<td>
<a> ...</a>
</td>
</tr>
Вы получаете изображение.Несколько (в данном случае 3) строк, каждая строка имеет tds (67 в данном случае) и только НЕКОТОРЫЕ из tds имеют подэлементы.
Мне нужно идти строка за строкой и смотреть на каждый td.Если нет подэлемента, то я получаю текст от тд.Если есть и это вход, то, если есть только 1 вход, я получаю его значение.Если два ввода, я получаю значение, где type = "hidden".
Я нахожу свои строки с
driver.findElements(By.xpath("blahblahblah//tr");
, я прохожу каждую строку и нахожу tds вроде
row.findElements(By.xpath("td"));
Это не проблема.Но затем я прохожу через tds, чтобы найти элементы:
td.findElements(By.xpath("*"))
(пожалуйста, обратите внимание, что это нормально, поскольку это не // *) Так что, если у td есть подэлементы, он сразу возвращается.Но если нет, он ждет и ждет до истечения времени ожидания.
Я сделал
driver.manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS);
и даже
driver.manage().timeouts().implicitlyWait(0, TimeUnit.SECONDS);
Ни сработало, как я ожидаю, только в работахдля
driver.findelements(By.xpath)).
Так есть ли способ установить это время ожидания для поиска элементов?Эти tds не имеют идентификаторов или чего-либо еще, или я мог бы просто сделать
driver.findElements(By.xpath(xpath with id + "//*"));
, и время ожидания, вероятно, сработало бы.
Есть ли способ с элементом получить конкретный xpath, если он имеетбез идентификатора, имени или бла-бла-бла?
Итак, два вопроса: 1: как установить время ожидания элемента, 2: если у вас есть элемент, как получить для него xpath