如何在没有/执行InitElements的情况下获取PageFactory中的最新对象?

Ana*_*ani 0 selenium-webdriver

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

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

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

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

**有什么办法,我们只刷新PageFactory Cache吗?就像SilkTest有'BrowserPage.FlushCache()'?

Ard*_*sco 8

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

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

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

最新信息保存在Selenium Wiki中:

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

  • 如果我有@CacheLookup注释,并且我知道在某些时候该元素已经过时,我是否可以故意使缓存无效并再次查找/查找新元素? (3认同)