【发布时间】:2016-05-10 08:53:24
【问题描述】:
基类:
protected WebDriver driver;
protected String URL = "https://www.example.com/";
public static String SignupURL = "https://www.example.com/login";
public Login loginpage;
@BeforeClass
public void setup()
{
System.setProperty("webdriver.chrome.driver","E:\\Selenium-Webdriver\\Chrome_Driver\\chromedriver.exe");
driver = new ChromeDriver();
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
driver.navigate().to(URL);
loginpage = PageFactory.initElements(driver,Login.class);
}
登录类:
protected WebDriver driver;
public Login(WebDriver driver) {
this.driver = driver;}
public Login Method1()
{
//Logic
}
LoginTest 类:
public class LoginTest extends Base {
@Test
public void method1()
{
setup() //Have to Call it
//Logic
}
@Test
public void method2
{
setup() //Have to Call it
//Logic
}
}
问题是为什么它需要为测试类中的每个方法调用 setup() 方法。
我已经在扩展类然后驱动程序应该自动调用但它不是。当我不调用 setup() 然后得到 Nullpointer Exception,如果我调用它,那么系统会为每个方法打开新的浏览器。
【问题讨论】:
-
您能否粘贴您收到的完整错误消息。我认为这是因为脚本无法识别驱动程序。
-
乍一看代码还可以,你不需要在每个方法中调用setup,你可以分享你的跟踪日志可能是生成空指针一些其他代码,
-
使用@BeforeTest 注释并公开webdriver……它对我有用……我认为这也会帮助你
-
@noor - 我试过了,但似乎不起作用。
标签: java selenium-webdriver testng pageobjects