我正在自动化的应用程序正在使用jQuery和ajax调用。因此,在与元素进行交互之前,我等待文档准备好并且所有ajax调用完成。只有这样,我才能与sendKeys()
,click()
等元素互动
为此,我需要在元素交互的任何地方显式添加该方法(例如waitForDocumentReadyAndAjaxTocomplete()
)。
无论如何,在与元素交互之前,我是否可以隐式调用该方法waitForDocumentReadyAndAjaxTocomplete()
?
答案 0 :(得分:0)
是的,有办法。您可以创建一个实用程序类,该实用程序类使用要使用的定位器来创建标识符,并且在创建标识符的方法中可以调用waitForDocumentReadyAndAjaxTocomplete方法。
基本上,实用程序类将处理该调用,实际上您可以使用try catch或轮询机制来根据需要优化对方法的调用。
这样,您不必每次都调用waitForDocumentReadyAndAjaxTocomplete方法。它将在您的实用程序类中调用。
答案 1 :(得分:0)
您可以使用PageFactory.initElements(..)
的功能:
ElementLocatorFactory
/ ElementLocator
来初始化页面类的元素。您可以在其中添加等待dom事件的时间,然后再查找元素。您可以检查AjaxElementLocatorFactory
的实现方式。采用这种方法应该没有问题,因为所有关键方法都是公开的,因此可以简单地覆盖。
但是我想您必须为所有带有@CacheLookup
注释的字段提供@FindBy
注释