Serenity BDD - 如何使用pagefactory重新加载页面元素

时间:2017-05-17 18:10:35

标签: serenity-bdd

我使用pagefactory有关于元素加载的问题:

@Findy(id = painelDeContole) 
private WebElementFacade painelDeControleBtn;

诀窍是,

Screenshot 1

在这个菜单上,我必须对" ... mais"进行鼠标悬停操作。打开这样的子菜单: Screenshot 2

但是当我调用painelDeControleBtn.isVisible()时,它返回false。 (上一张图片,第二张图标) 我需要一些方法来重新加载页面元素并真正验证在鼠标悬停操作后元素是否可见。 我已经在PageObject和WebElementFacade中搜索了一些方法,但还没有找到任何方法。 如果可能的话,我想维护pagefactory的使用..

1 个答案:

答案 0 :(得分:0)

由于@FindBy加载元素的方式,它可能出现在屏幕上但尚未显示,或者它可能不会等到元素出现后才返回结果。为了可靠地执行此操作,您将通过动态查找获得更好的结果,例如

$("#painelDeContole").isVisible();

$("#painelDeContole").waitUntilVisible();