&引用;无法实例化类";通过Selenium Java TestNG执行测试时出错
我第一次使用Selenium和TestNG,我一直试图通过元素的ID来搜索元素,但是我一直得到一个“CannotInstanceClass”错误。这是我的代码:&引用;无法实例化类";通过Selenium Java TestNG执行测试时出错,java,selenium,selenium-webdriver,webdriver,testng,Java,Selenium,Selenium Webdriver,Webdriver,Testng,我第一次使用Selenium和TestNG,我一直试图通过元素的ID来搜索元素,但是我一直得到一个“CannotInstanceClass”错误。这是我的代码: import org.testng.annotations.*; import org.openqa.selenium.*; import org.openqa.selenium.firefox.*; public class NewTesting { WebDriver driver = new FirefoxDriver
import org.testng.annotations.*;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.*;
public class NewTesting {
WebDriver driver = new FirefoxDriver();
@BeforeTest
public void setUp() {
driver.get("http://book.theautomatedtester.co.uk/chapter1");
}
@AfterTest
public void tearDown() {
driver.quit();
}
@Test
public void testExample() {
WebElement element = driver.findElement(By.id("verifybutton"));
}
}
也许我没安装什么东西?我为eclipse安装了TestNG插件并添加了WebDriver JAR文件,我还需要做更多吗?
我试着遵循多个教程,但我不断得到错误,我希望有人可以帮助。提前谢谢
编辑:
我现在有这个:
public class NewTest {
private WebDriver driver;
@BeforeTest
public void setUp() {
System.setProperty("webdriver.gecko.driver","C:\\Program Files\\Selenium\\FirefoxDriver\\geckodriver.exe");
WebDriver driver = new FirefoxDriver();
driver.get("http://book.theautomatedtester.co.uk/chapter1");
}
@AfterTest
public void tearDown() {
driver.quit();
}
@Test
public void testExample() {
WebElement element = driver.findElement(By.id("verifybutton"));
}
}
它现在确实打开了网站,但我现在收到一个nullpointer异常:
配置失败:@AfterTest拆卸
java.lang.NullPointerException
在NewTest.tearDown(NewTest.java:21)如果您使用的是windows,前面的问题可能会对您有所帮助
它提到您可以这样初始化FirefoxDriver:
System.setProperty("webdriver.gecko.driver","G:\\Selenium\\Firefox driver\\geckodriver.exe");
WebDriver driver = new FirefoxDriver();
替换这组导入:
import org.testng.annotations.*;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.*;
与:
此外,您必须从下载所需格式的GeckoDriver可执行文件,提取二进制文件,然后初始化FirefoxDriver
您的有效代码块将是:
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
import org.testng.annotations.AfterTest;
public class NewTesting {
WebDriver driver;
@BeforeTest
public void setUp() {
System.setProperty("webdriver.gecko.driver","C:\\path\\to\\geckodriver.exe");
driver = new FirefoxDriver();
driver.get("http://book.theautomatedtester.co.uk/chapter1");
}
@AfterTest
public void tearDown() {
driver.quit();
}
@Test
public void testExample() {
WebElement element = driver.findElement(By.id("verifybutton"));
}
}
您可以添加更多的异常详细信息吗?最好提供完整的异常以查看它。处理导入的最佳方法是将红色的squggled文本悬停,并以这种方式修复导入。这样,您就得到了正确的导入(如果有多个导入,则假设您做出了正确的选择)。您的问题已经被提出并得到了回答。如果您修复了原始问题,请打开一个包含新错误详细信息的新问题。。。不要继续编辑这一个与进一步的问题。这使得未来的读者无法理解正在发生的事情,并且对当前问题的有效答案感到困惑。我试过了,但现在它无法识别“后测”和“测试”中的驾驶员。签出更新的解决方案并让我知道状态。这项功能正在运行。我刚刚发现了错误:)虽然仍有一堆红色文本,但最后显示:默认测试运行:1,失败:0,跳过:0默认套件测试运行总数:1,失败:0,跳过:0那么红色文本正常吗?@Rugo我不确定…红色文本。。。你看到了。这些可能是警告,当您运行默认测试时,我们可以接受这些警告:1,失败:0,跳过:0
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
import org.testng.annotations.AfterTest;
public class NewTesting {
WebDriver driver;
@BeforeTest
public void setUp() {
System.setProperty("webdriver.gecko.driver","C:\\path\\to\\geckodriver.exe");
driver = new FirefoxDriver();
driver.get("http://book.theautomatedtester.co.uk/chapter1");
}
@AfterTest
public void tearDown() {
driver.quit();
}
@Test
public void testExample() {
WebElement element = driver.findElement(By.id("verifybutton"));
}
}