gpt4 book ai didi

java - Selenium 页面工厂 : initelements once per class?

转载 作者:行者123 更新时间:2023-12-02 03:03:11 26 4
gpt4 key购买 nike

这可能更像是一个java问题,而不是selenium问题,但由于我对Java很陌生,所以我不知道答案。我正在使用页面对象模型编写 Selenium 测试。我在一个类上有页面,在另一个类上有测试。但是,我尝试仅在每个测试类中执行 PageFactory.initelements 一次,因此我不必在每个测试中添加该行(无论如何,在该类中,我想做这样的事情:

import com.company.pages.LoginPage

public class LoginTests {

LoginPage login = PageFactory.initElements(driver, LoginPage.class );

@Test
public void test1() {
login.method();
}

@Test
public void test2() {
login.methodTwo();
}
}

但是我在 LoginPage 类中定义的对象上不断收到 NullPointerException 异常。这告诉我该页面从未初始化。但由于我对Java比较陌生,我不知道如何初始化它。感谢您的帮助!

最佳答案

试试这个:

LoginPage login;

@Before
public void beforeTest() {
login = PageFactory.initElements(driver, LoginPage.class );
}

根据this :

Annotating a public void method with @Before causes that method to be run before the Test method.

这将有助于减少测试的冗长性。

关于java - Selenium 页面工厂 : initelements once per class?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42162157/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com