如何通过main()和TestNG在IDE中编写Selenium Java应用程序代码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何通过main()和TestNG在IDE中编写Selenium Java应用程序代码相关的知识,希望对你有一定的参考价值。

我面对以下问题在谷歌搜索无法找到明确的答案如何解决这个问题。

错误:

org.apache.bcel.verifier.exc.AssertionViolatedException.main(AssertionViolatedException.java:102)

import org.openqa.selenium.chrome.ChromeDriver;

public class Newtours 
{ 
     public static ChromeDriver driver; 
     public void chrome() 
    {
         System.setProperty("webdriver.chrome.driver","C:\Users\imper\Downloads\chro‌​medriver_win32\chro‌​medriver.exe"); // objects and variables instantiation 
         driver = new ChromeDriver(); 
         driver.get("newtours.demoaut.com/");
    }
}
答案

这个错误源于org.apache.bcel.verifier

你必须按照以下方式处理某些事情:

而不是使用ChromeDriver实现使用WebDriver接口。 chrome是保留的关键字。为该方法使用一些其他用户定义的名称,例如my_function() {}简单地定义public void chrome()将不会执行你的Test。您必须将public void chrome()转换为以下任一项:

  • 转换为main()函数如下: public class Newtours { public static void main(String[] args) { System.setProperty("webdriver.chrome.driver", "C:\path\to\chromedriver.exe"); WebDriver driver = new ChromeDriver(); driver.get("http://newtours.demoaut.com/"); } }
  • 整合TestNG并添加@Test注释如下: import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.testng.annotations.Test; public class Newtours { @Test public void my_function() { System.setProperty("webdriver.chrome.driver", "C:\path\to\chromedriver.exe"); WebDriver driver = new ChromeDriver(); driver.get("http://newtours.demoaut.com/"); } }
另一答案
System.setProperty("webdriver.chrome.driver", "chromedriver");
driver = new ChromeDriver(); 
driver.get("http://newtours.demoaut.com/");

试试这个代码它运行正常。我查了一遍,它运行正常。您需要为您的网址提供http或https。

以上是关于如何通过main()和TestNG在IDE中编写Selenium Java应用程序代码的主要内容,如果未能解决你的问题,请参考以下文章

TestNG独立运行的几种方法.md

testng.xml 配置大全

在 testng 测试中模拟通过 CAS 登录的用户

C/C++语言中,如何在main.c或main.cpp中调用另一个.c文件

如何在TestNG报告中显示消息(对于通过的测试用例)

如何使用 maven mvn test 命令行运行动态 testng.xml?