java - 我可以为多个 Web 操作只调用一次 PageFactory 实例吗?
问题描述
我使用 Pagefactory 设计模式进行 selenium java 测试,一切正常。我想知道是否可以只为多个操作调用一次 PageFactory 实例,而不是在同一方法中一直重复该实例。我有这样的事情:
private static BasePage basePage; //There is BasePage class somewhere that holds PageFactory elements
basePage = PageFactory.initElements(driver, BasePage.class); // PageFactory initialisation in the test class
public static void loginTest() throws InterruptedException {
basePage.acceptButton.click();
basePage.skipButton.click();
basePage.loginButton.click();
}
basePage
每次我执行一个动作时,我都会重复。我在想是否有一种方法可以让 java 只调用basePage
一次实例。我试过这样的事情:
basePage.acceptButton.click()
.skipButton.click();
.loginButton.click();
代码无法编译。是否有解决方法或者这超出了java?
解决方案
这完全取决于您的测试是如何设计的、页面的内容以及您的体验结果。
我确实尝试设计我的测试,以便我可以在多个测试中共享一个页面对象,您只需要在类级别声明页面对象变量即可。需要注意的是,您的测试步骤需要按预期顺序运行。
一般来说,即使页面本身发生变化,它也会正常工作,因为在您引用它之前不会访问每个元素。但是,如果您发现自己遇到过时元素异常,最好强制重新初始化页面对象。
更新
我刚刚重新阅读了您的整个问题,并意识到我做了一个错误的假设。您正在寻找链接操作,而不是重新实例化页面对象。据我所知,这对于页面对象是不可能的,但我并不声称自己是 Java 专家,所以也许其他人可以确认或否认这一点。
推荐阅读
- c++ - C++:T-分布值
- java - KSQL:我可以在 KSQL UDF 函数中使用线程来加快进程吗?
- angular - 如何在 Angular 6/7 的客户端浏览器上立即处理分块的 HTTP Post 响应
- python - 将元素添加到熊猫中的空数据框
- java - 为什么 Class.class 不执行静态代码?
- oauth-2.0 - 在 oauth2 中, expires_in 是以秒还是毫秒为单位?
- excel - 通过数据验证防止空白单元格
- sql-server - dbo.fn_split 函数在分割字符/分隔符之后切断下一个字符
- google-apps-script - 是否有一个脚本可用于搜索两个电子表格之间的重复项并将数据从一张表中的行附加到另一张表中
- android - 如何调试签名与以前安装的版本不匹配错误