请参阅下面的部分代码:
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()
是等待,但不是重新发送 ALL 元素,这就是我的测试失败的原因。 (这也是我添加 thread.sleep
方法的原因)。
有没有办法使用wait()
方法来实际等待页面上的ALL元素?
最佳答案
您可以等待任何条件,因此我猜想元素列表具有预期的大小。
你尝试过findElementsBy()
吗???
关于java - 如何等待具有相同类名的所有元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25627346/