См. Частичный код ниже:
public class OrderDetailsDashboard extends AbstractTestNGSpringContextTests {
By orderDetails = By.cssSelector(".col-md-12 span strong");
By orderMoreDetails = By.cssSelector(".row.panel-info-summary span strong");
By refundOrderButton = By.cssSelector(".refund-order-action");
public orderDetails getOrderDetails(WebDriver driver) {
logger.info("About to collect and returns the specific order details - refreshing page");
WebDriverWait waitForTitle = new WebDriverWait(driver,30);
try {
waitForTitle.until(ExpectedConditions.visibilityOfAllElementsLocatedBy(orderMoreDetails));
}
catch (StaleElementReferenceException ex) {
waitForTitle.until(ExpectedConditions.visibilityOfAllElementsLocatedBy(orderMoreDetails));
}
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
waitForTitle.until(ExpectedConditions.visibilityOfAllElementsLocatedBy(orderDetails));
У меня проблема, которая, кажется, решена, но я не удовлетворен решением. Я пытаюсь загрузить страницу с помощью моей автоматизации. Следующий элемент (представленный здесь как объект страницы):
By orderDetails = By.cssSelector(".col-md-12 span strong")
представлен 6 раз на моей странице и содержит только жирный текст. Я заметил, что когда я пытаюсь получить текст 7-го элемента, я получил Index Out Of Bounds Exception
. Хотя я использовал метод wait()
. В конце я понял, что wait()
- это ждать, но не для ВСЕХ элементы, которые будут возмущаться, и это является причиной моего теста. (это также причина, по которой я добавил метод thread.sleep
).
Есть ли способ использовать метод wait()
чтобы на самом деле ждать ВСЕ элементы на странице?
Вы можете подождать какое-либо условие, поэтому я предполагаю, что для списка элементов должен быть ожидаемый размер.
Вы пытались findElementsBy()
???