当前位置: 首页 > 面试题库 >

如何通过main()和TestNG在IDE中编写Selenium Java Application代码

莫英喆
2023-03-14
问题内容

我面临以下在Google中搜索的问题,找不到解决该问题的明确答案。

错误:

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/");
        }
    }
    


 类似资料:
  • 了解如何在“代码”视图中工作并充分利用 Dreamweaver 的编码功能。 可通过多种方式在 Dreamweaver 中处理代码。 您可以使用“新建文档”对话框打开新的代码文件,然后开始键入您的代码。在 Dreamweaver 中创建新的代码文件 键入时,会显示代码提示以帮助您选择代码和避免打字错误。如果需要,可使用 Dreamweaver 的有用的快捷文档获取 CSS 的相关帮助。 还可以使用

  • 在进一步介绍之前,让我们花点时间来讨论编写"通用"代码时的约束条件 - 即运行在服务器和客户端的代码。由于用例和平台 API 的差异,当运行在不同环境中时,我们的代码将不会完全相同。所以这里我们将会阐述你需要理解的关键事项。 服务器上的数据响应 在纯客户端应用程序 (client-only app) 中,每个用户会在他们各自的浏览器中使用新的应用程序实例。对于服务器端渲染,我们也希望如此:每个请求

  • 问题内容: 我可以很轻松地在Node.js中编写非阻塞I / O。 这就是整个库的用途。 但是所做的任何计算都是阻塞的。任何通过事件发送器的消息都将被阻止。 例如,发出事件立即得到解决,因此被阻止: 除了将调用包装起来外,如何使代码无阻塞? 我希望在事件循环的每个周期中进行尽可能少的计算,以便可以同时为尽可能多的客户端提供服务。 如何以非阻塞方式编写代码? 当我拥有非阻塞代码时,如何在多个进程之间

  • 问题内容: 我想评估 作为一个块,而不是逐行评估 有没有简单的方法可以将提示移至下一行? 问题答案: 节点v6.4具有一种模式。在repl提示符下,您可以输入多行。 例 以下是所有特殊repl命令的文档 https://nodejs.org/api/repl.html#repl_commands_and_special_keys

  • 步骤类文件: 然后我需要开发用于驱动故事文件的testrunner。 有人能帮助我使用TestNG框架创建一个测试运行器类文件吗?