Я запускаю код, который выбирает диапазон по значению его текста и затем щелкает его правой кнопкой мыши, используя эту функцию:
public void rightClickElement(WebElement element) {
Actions action = new Actions(driver);
actions.contextClick(element).perform();
}
В основном я перебираю список имен файлов и выбираю элемент I хочу манипулировать по имени файла, используя следующую XPATH:
//span[contains(text(), 'PLACEHOLDER')]
с функцией, которая заменяет PLACEHOLDER на текущее значение массива имен файлов, по которому я перебираю.
Это мой код:
* Примечание: getAssertedElement
- это просто написанная мной функция, которая подтверждает существование элемента и возвращает его одновременно.
List<WebElement> textFilesElements = driver.findElements(By.xpath("//span[(@class='document') and contains(text(), '.txt')]"));
ArrayList<String> filesToDelete = new ArrayList<String>();
waitSeconds(1);
for (int i = 0; i < textFilesElements.size(); i++) {
filesToDelete.add(textFilesElements.get(i).getText());
}
for (int i = 0; i < filesToDelete.size(); i++) {
WebElement elementToDelete = getAssertedElement("Cannot find the current element",
replacePlaceholderInString(
"//span[contains(text(), 'PLACEHOLDER')]",
filesToDelete.get(i)
),
"xpath");
System.out.println("FICHIER TO DELETE" + elementToDelete.getText());
rightClickElement(elementToDelete);
// do things with element
...
}
Это отлично работает в первый раз через второе утверждение for
, но когда я перехожу к следующему имени файла, хотя элемент видим и доступен для щелчка, тест завершается неудачно со следующей ошибкой, когда он достигает вызова rightClickElement
:
javascript error: Failed to execute 'elementsFromPoint' on 'Document': The provided double value is non-finite.
Я не понимаю, почему, тем более, как это исправить.