我的测试套件分为两部分:测试数据库,WebElements的xpath位置,.click()
命令等。我还有一个测试套件。
这是一个示例测试,它共享它为实验目的而处理的包。从右到右,我不担心输出结果(我知道该怎么做),代码只需要工作。
package LoginPage;
import org.openqa.selenium.firefox.FirefoxDriver;
import java.util.concurrent.TimeUnit;
import org.junit.*;
import org.openqa.selenium.*;
public class FunctionCheck {
private WebDriver driver;
private String baseUrl;
@Before
public void setUp() throws Exception {
driver = new FirefoxDriver();
baseUrl = "http://www.XXXXXXXXXXX.com/";
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
}
@Test
public void test() throws Exception {
driver.get(baseUrl + "XXXXXXXXXXXX");
Thread.sleep(600);
LoginPage.enterValidCredentials myins = new LoginPage.enterValidCredentials();
myins.run();
}
@After
public void tearDown() throws Exception {
driver.quit();
}
}
这是位于同一个包中的“enterValidCredentials”类。
package LoginPage;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
public class enterValidCredentials { // This class enters in a valid username and valid password on the login page.
public void run() {
WebDriver driver;
driver.findElement(By.cssSelector("input[type=\"text\"]")).sendKeys("XXXXXX");
driver.findElement(By.cssSelector("input[type=\"password\"]")).sendKeys("XXXXXX");
}
}
我遇到两个问题:
WebDriver driver = null;
。NullPointerException
。我一直在搜索文档一段时间。我真的很难过是怎么回事。我想要的只是运行run()
方法,并将信息插入页面。这就是目标。
答案 0 :(得分:2)
public class enterValidCredentials {
public void run(WebDriver driver) {
driver.findElement(By.cssSelector("input[type=\"text\"]")).sendKeys("XXXXXX");
driver.findElement(By.cssSelector("input[type=\"password\"]")).sendKeys("XXXXXX");
}
}
将现有的WebDriver
个实例传递到enterValidCredentials.run
:
myins.run(driver);
答案 1 :(得分:1)
这是你的问题。 queryCompletionBlock
未初始化。因为它是局部变量,编译器将要求您初始化它。正如你所说,当你将它初始化为null时,以下2行将其取消引用。你不能在一个没有任何指针的对象上调用方法。
driver
您必须为其指定一个值
WebDriver driver;
driver.findElement(By.cssSelector("input[type=\"text\"]")).sendKeys("XXXXXX");
driver.findElement(By.cssSelector("input[type=\"password\"]")).sendKeys("XXXXXX");
答案 2 :(得分:1)
尝试初始化您的驱动程序,如
private WebDriver driver=new FirefoxDriver();
配合,更好地使用调试)