1

我在 selenium 框架(WebDriver,Java)中使用 PageFactory 模型。

测试:在应用程序中创建一个实体并等待它完成(要验证实体的状态(已完成/正在进行),我必须在创建的实体前面验证状态图像)。

问题/查询: * * 我应该如何等待特定状态应该从进行中更改为完成?(因为完成后整个页面没有刷新,只有该图像正在刷新 - AJAX/JSON 调用)

***我应该如何使用 PageFactory 获取最新的页面对象?我曾尝试使用 PageFactory.InitElements(driver, classname.class),但它不起作用。

* *有什么办法,我们只能刷新PageFactory Cache?像具有“BrowserPage.FlushCache()”的 SilkTest?

4

1 回答 1

9

使用 @FindBy 注释定义的 WebElement 是有效的代理。每次使用 WebElement 执行操作时,它都会使用 @FindBy 注释中的定位器再次在页面上查找该元素。

PageFactory.InitElements(driver, classname.class) 只是设置这些代理,它实际上并没有找到元素,所以你不需要一次又一次地调用它。

您可以使用 @CacheLookup 注释缓存单个 WebElement,如果您使用它,WebElement 将在您第一次使用它时被延迟评估,但从那时起它将不再被查找(这意味着您可以开始获取 StaleElementExceptions如果元素发生变化)。

最新信息保存在 Selenium Wiki 中:

http://code.google.com/p/selenium/wiki/PageFactory

于 2013-02-08T15:08:39.817 回答