探索Page Factory @FindAll List <webelement>以及AjaxElementLocatorFactory

时间:2019-02-20 16:01:01

标签: selenium

在下面的List<WebElement>场景中,如果5个元素的xpath不正确,有人可以在Page Factory等待机制上分享他/她的经验。

这里的等待时间是多少? 5秒或25秒或其他时间在内部代码中进行。

让我们说,设置10秒等待使用:

AjaxElementLocatorFactory ajaxElemFactory = new  AjaxElementLocatorFactory(driver, 10); 

但不使用硒隐式等待。

如果我写下面的代码-

**@FindAll({    
    @FindBy(css = HomePageLocators.megaMenu1),
    @FindBy(xpath = HomePageLocators.anntaylorImage2),
    @FindBy(css = HomePageLocators.megaMenu3),
    @FindBy(xpath = HomePageLocators.anntaylorImage4),
    @FindBy(xpath = HomePageLocators.anntaylorImage5),
}) public List<WebElement> pageLoadCondition;**

如果我打印pageLoadCondition.size,则假定所有定位符都是错误的(xpath不正确),然后打印0并返回空列表。

希望AjaxElementLocatorFactory在这里不会出现,因为我们没有对该元素执行任何操作。

现在焦点移至代码中的下一行,即(显式等待5秒)

wait = new FluentWait<WebDriver>((WebDriver) driver).withTimeout(5, TimeUnit.SECONDS).pollingEvery(1,TimeUnit.SECONDS);
wait.until(ExpectedConditions.visibilityOfAllElements(pageLoadCondition));

然后,它最多需要等待5秒才能搜索列表中的5个元素,还是真的要等待5 * 5 = 25秒才能遍历并逐一检查列表中每个元素的存在。

0 个答案:

没有答案