Я использую WebDriver в Java.Исключение элемента stal элемента Webdriver, когда элемент DOM не изменился
Я хочу получить все значения суммы из поля суммы ниже, так что я планирую сделать это, чтобы зациклиться на каждой строке таблицы и найти, установлен ли этот флажок, установить количество на определенное число.
Пример исходного код можно найти здесь: http://eric-lin.net/upload/index.php
Я использую следующий метод Java, чтобы найти значение суммы поля:
public void fillInAllAmountForSelectedItems() {
List<WebElement> allItems = driver
.findElements(By
.xpath("//table[@id = 'bulkPaymentForm:itemTable']//tbody[@id = 'bulkPaymentForm:itemTable:tbody_element']//tr[contains(@class, 'handCursor row-border tranItemRow')]"));
System.out.println(allItems.size());
//return 3, expected
waitTimer(2, 1000);
for (WebElement item : allItems) {
System.out.println(item.findElement(By.xpath("//td[4]"))
.getAttribute("Value"));
}
}
Большой часть времени, foreach loop завершится неудачно из-за исключения элементарного элемента. Который я не понимаю, потому что DOM не изменился.
Когда он работает, цикл foreach не печатает ничего, поэтому похоже, что он не нашел правильный элемент.
Как это сделать, чтобы исправить это, и что мне нужно сделать, чтобы выполнить назначение этой функции, чтобы заполнить значение суммы для всех отмеченных элементов?
Большое спасибо за внимание.
Вы пытались добавить функцию 'wait()'? попробуйте выполнить шаг за шагом (режим отладки), если вы используете eclipse – vkrams
Обратите внимание, что поле 'input' внутри' td' будет содержать сумму, а не 'td'. – Faiz