Я создаю структуру для проверки данных с использованием селена. Проблема, с которой я борюсь, заключается в том, что я хочу найти элемент «td» (тег html) в элементе «tr» (тег html). Это код, который я написал.Как найти элемент внутри элемента в селене
Iterator<WebElement> i = rows.iterator();
While(i.hasnext()){
List<WebElement> columns = row.findElements(By.tagName("td"));
for(WebElement s:columns)
{
System.out.println("columnDetails : "+s.getText().toString());
}
if(columns.isEmpty())
{
ElementNotFoundException e = new ElementNotFoundException("No data in table");
throw e;
}
Iterator<WebElement> j = columns.iterator();// does some other work
ClusterData c = new ClusterData(); // does some other work
ClusterDataInitializer.initUI(c, j, lheaders); // does some other work
CUIData.put(c.getCN(), c); // does some other work
}
Теперь проблема с этим:
Я пытаюсь извлечь данные из строки (см табличных данных) в ArrayList и использовании, что ArrayList дальше. В настоящее время происходит то, что данные для заголовка столбца извлекаются в начале, когда я не использую. Мне нужны только данные строк. Я не могу определить правильный способ сбора данных только из строк таблицы. если XPATH таблицы поможет вам понять это правильно, то здесь детали:
Таблица заголовка xPath
столбца имя кластера:
/html/body/table/tbody/tr[2]/td[2]/div[2]/div/div/div[2]/div/div/div[2]/div/div/div[2]/div/div/div/div/div/div[2]/div/div/div[2]/div/div/div[2]/div[2]/div/table/tbody/tr/td[2]/div/div[2]
Строка таблицы (Таблица данных) xPath
тестового кластера 01:
/html/body/table/tbody/tr[2]/td[2]/div[2]/div/div/div[2]/div/div/div[2]/div/div/div[2]/div/div/div/div/div/div[2]/div/div/div[2]/div/div/div[3]/div[2]/div/table/tbody/tr/td[2]/div/div/a
Пожалуйста, дайте мне знать, если вам нужно что-нибудь еще.
Я использую следующий код для извлечения данных строки из таблицы.
List<WebElement> rows = getElement(driver,sBy,"table_div_id").findElements(By.tagName("tr"));
, где sBy = By.id
и table_div_id = id
из div
, в котором таблица присутствует. Это извлекает все строки в arraylist
, а затем я использую код для извлечения данных строки в другой arraylist
. Здесь я застрял.
Это выглядит как худший XPath я когда-либо видел! Разумеется, вы можете сделать его более простым и надежным. –
Я скопировал его с помощью firebug и вставил его как есть. Не могу помочь, если xPath выглядит так. Так разработан продукт. Моя задача - создать инфраструктуру автоматизации. Но если вы дадите мне несколько указаний относительно того, как я могу сделать это проще, чтобы вы могли понять, я обязательно попытаюсь. :) – Avataar17