У меня есть такая html-разметка:
<html>
...
<body>
....
<fieldset>
<legend>Other Details</legend>
<div>
<input type='text' id='txt1' title='Detail 01'/>
</div>
<div>
<input type='text' id='txt2' title=''/>
</div>
<div>
<input type='text' id='txt3' title=''/>
</div>
<div>
<input type='text' id='txt4' title='Detail 04'/>
</div>
</fieldset>
.....
<body>
</html>
Это то, что я хочу сделать.
Мне нужно быстро перемещаться по экрану, подбирать все текстовые поля и их заголовки. Когда я сталкиваюсь с текстовым полем без заголовка (как два из них в моем примере выше), мне нужно проверить, встречаются ли они в наборе полей, что они и делают. Теперь для этих текстовых полей без заголовка все, что мне нужно сделать, это взять значение легенды набора полей и присвоить его текстовому полю.
Например, второе и третье текстовые поля в приведенном выше примере не имеют заголовка. В этом случае я хочу сделать следующее:
- Возьмите значение легенды содержащего поля набора (в данном случае «Другие детали»)
- Получите положение текстового поля в наборе полей и добавьте его к легенде набора полей, например Другие сведения 2.
- Сделайте то же самое для третьего текстового поля.
Я выполнил шаг 1. Когда я нахожусь на шаге 2, мне нужно узнать положение текстового поля в родительском наборе полей. У меня есть код Selenium WebDriver ниже:
WebElement textbox = driver.findElement(By.id("txt2"));
List<WebElement> precedingSiblings =
textbox.findElement(By.xpath("preceding-sibling::input[@type='text' or @type='Text' or @type='TEXT']"));
String myTitle =
fieldSetLegend + " " + Integer.toString(precedingSiblings.size()+1);
Я ожидаю, что этот код даст мне значение myTitle как Other Details 2 и Other Details 3 для моих второго и третьего текстовых полей.
Но проблема в том, что каждый раз, когда я нажимаю PreviousSiblings.size(), он всегда возвращает 0. Это потому, что каждый ввод содержится в div и, следовательно, не имеет братьев и сестер.
Теперь я хочу узнать, как я могу найти, в какой позиции находится мой текущий элемент в содержащем наборе полей.
Пожалуйста помоги.!!!