org.testng.TestNGException:无法实例类(org.testng.TestNG

2019-09-30 12:50发布

我收到以下错误,当我试图运行我的脚本

org.testng.TestNGException:无法实例类产生的原因:java.lang.IllegalStateException:java.lang.reflect.InvocationTargetException通过造成的驾驶员可执行文件的路径必须由webdriver.ie.driver系统属性进行设置;

package EDRTermsPackge;

import org.testng.annotations.Test;

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;

public class ContactInformationTesting {

 //For use of IE only; Please enable for IE Browser
 WebDriver driver = new InternetExplorerDriver();

 @BeforeMethod
 public void beforeMethod() {
  //Using or Launching Internet Explorer
  String exePath = "\\Users\\jj85274\\Desktop\\IEDriverServer.exe";

  //For use of IE only; Please enable for IE Browser
  System.setProperty("webdriver.ie.driver", exePath);
 }

 @Test
 public void OpenPage_Login() {
  driver.get("http://cp-qa.harriscomputer.com/");
 }
}

Answer 1:

你应该首先设置为驱动的路径,然后实例IEDriver,您不能使用new InternetExplorerDriver(); 之前System.setProperty("webdriver.ie.driver", exePath);

你的情况,你可以做这样的事情(无需@BeforeMethod做如此简单的属性设置):

public class ContactInformationTesting {

  //Using or Launching Internet Explorer
  String exePath = "\\Users\\jj85274\\Desktop\\IEDriverServer.exe";

  //For use of IE only; Please enable for IE Browser
  System.setProperty("webdriver.ie.driver", exePath);

  //For use of IE only; Please enable for IE Browser
  WebDriver driver = new InternetExplorerDriver();

 @Test
 public void OpenPage_Login() {
  driver.get("http://cp-qa.harriscomputer.com/");
 }


Answer 2:

串exePath = “\ Users \用户jj85274 \桌面\ IEDriverServer.exe”;

这条线的一种暗示,如果你正在尝试设置IEDriverServer从网络驱动器的二进制文件。 是这样吗 ? 我不知道,如果网络路径可以通过Java代码直接进行访问。

我建议,而不是试图添加IEDriverServer.exe路径在源代码中每一个测试,你可能也包括这个二进制在你的PATH变量。 您可以通过删除此exe成在以下命令的输出中列出的目录中一个做到这一点的窗户

在Windows echo %PATH%

在非Windows echo $PATH



文章来源: org.testng.TestNGException: Cannot instantiate class