![](/img/trans.png)
[英]How to create a same instance for multiple classes in selenium webDriver
[英]Same instance of Webdriver in multiple classes in Java Selenium
包含所有类的类
public class AllTests{
public static void main(String[] args) {
Loginer.login();
Example.linkOne();
Examplee.linkTwo();
}
}
启动Firefox驱动程序并登录的类
public class Loginer{
public static login(){
WebDriver driver = new FirefoxDriver();
driver.get("http://LINKISHERE.COM/");
//other login code
}
}
单击链接和内容的实际Selenium代码
public class Example{
public static linkOne() {
**driver**.findElement(By.className("CLASSNAME")).click();
}
public static linkTwo() {
**driver**.findElement(By.className("CLASSNAME")).click();
}
}
我对JAVA还是很陌生,到目前为止我只使用python。 我想做的是将多个测试分为多个类,这些类属于AllTests类,因此我可以轻松地将它们删除或添加新的类。 由于此java.lang.NullPointerException
我一直在所有类中使用相同的WebDriver。 是建议这样做还是应该让Selenium每次都启动一个新的WebDriver?
您可以按照以下说明更改课程。
public class Loginer{
public static WebDriver driver;
public static login(){
driver = new FirefoxDriver();
driver.get("http://LINKISHERE.COM/");
//other login code
}
}
public class Example{
public static linkOne() {
Loginer.driver.findElement(By.className("CLASSNAME")).click();
}
}
public class Examplee{
public static linkTwo() {
Loginer.driver.findElement(By.className("CLASSNAME")).click();
}
}
在这里,我将驱动程序实例存储在一个静态变量中,并在所有类中使用它。 它可能适合您。
在AllTests
类中初始化驱动程序,并将其作为方法参数传递给其他驱动程序。
public class AllTests {
public static void main(String[] args) {
WebDriver driver = new FirefoxDriver();
Loginer.login(driver);
Example.linkOne(driver);
Examplee.linkTwo(driver);
}
}
public class Loginer {
public static void login(WebDriver driver){
driver.get("http://LINKISHERE.COM/");
// other login code
}
}
public class Example {
public static void linkOne(WebDriver driver) {
driver.findElement(By.className("CLASSNAME")).click();
}
}
public class Examplee {
public static void linkTwo(WebDriver driver) {
driver.findElement(By.className("CLASSNAME")).click();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.