Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用TestNG和Excel的Selenium WebDriver_Java_Excel_Selenium_Webdriver_Testng - Fatal编程技术网

Java 使用TestNG和Excel的Selenium WebDriver

Java 使用TestNG和Excel的Selenium WebDriver,java,excel,selenium,webdriver,testng,Java,Excel,Selenium,Webdriver,Testng,您好,我真的需要使用TestNG和Excel的SeleniumWebDriver的帮助 我尝试从excel中获取数据以打开浏览器并浏览URL。它的工作成功,终端和testng报告显示测试通过,但它没有打开浏览器或做任何事情,它只是运行它自己和显示报告 配置文件 public void openBrowser(String browser){ try { if (browser.equals("Mozilla")) { dri

您好,我真的需要使用TestNG和Excel的SeleniumWebDriver的帮助

我尝试从excel中获取数据以打开浏览器并浏览URL。它的工作成功,终端和testng报告显示测试通过,但它没有打开浏览器或做任何事情,它只是运行它自己和显示报告

配置文件

public void openBrowser(String browser){
        try {
            if (browser.equals("Mozilla")) {
                driver = new FirefoxDriver();
            } else if(browser.equals("IE")){
                driver = new InternetExplorerDriver();
            } else if(browser.equals("Chrome")){
                System.setProperty("webdriver.chrome.driver", "\\Applications\\Google Chrome.app\\Contents\\MacOS\\Google Chrome ");
                driver = new ChromeDriver();
            }
        } catch (Exception e) {

        }
    }


    public void navigate(String baseUrl){
        try {
            driver.manage().window().maximize();
            driver.manage().deleteAllCookies();
            driver.navigate().to(baseUrl);
        } catch (Exception e) {

        }
    }
和测试执行文件

public class NewTest {
    public String exPath = Config.filePath;
    public String exName = Config.fileName;
    public String exWrSheet = "Logiin Functional Test";
    public Config config;

    @BeforeTest
    public void openBrowser() {
        config = new Config();
        Excel.setExcelFile(exPath+exName, exWrSheet);
        String browser = Excel.getCellData(1, 2);
        config.openBrowser(browser);
    }

    @BeforeMethod
    public void navigate() {
        config = new Config();
        Excel.setExcelFile(exPath+exName, exWrSheet);
        String baseUrl = Excel.getCellData(2, 2);
        config.navigate(baseUrl);
    }

    @Test
    public void test() {
        System.out.println("Test");
    }

    @AfterTest
    public void closeBroser() {
        //Config.tearDown();
    }

我没有足够的代表来发表评论,我更愿意在这里发表评论,但是如果你没有得到任何类型的异常,我怀疑你为浏览器变量得到的值与你在openBrowser中的if-then-else中的值不匹配,然后就失败了。使用调试器单步执行代码,或仅添加:

String browser = Excel.getCellData(1, 2);
System.out.println("Browser value from Excel =" + browser);
config.openBrowser(browser);

查看您从文件中读取的内容。

1-TestNg始终是pass,因为您使用的是“void”方法,并且捕获的是“all”异常

2-没有打开浏览器,因为在openBrowser(字符串浏览器)中,NullPointException抛出,而您已经捕获它


->您需要初始化WebDriver的一个实例并通过测试。

添加最后一个else并在那里引发异常可能有助于调试异常。我已经把这段代码放到Eclipse中,删除了Excel读取,只是硬编码了浏览器名,它为我打开了所有的浏览器。这很奇怪,因为它甚至没有进入您的@Test并运行它。TestNG结果选项卡上显示了什么?另外,您可以分享testng-customsuite.xml的屏幕截图吗?我不确定navigate方法是否有效,因为您正在实例化一个新配置,并试图在驱动程序未设置为任何值时使用它。但是首先要弄清楚为什么浏览器不能打开。好吧,现在打开的浏览器可以工作了,但只有Mozila,其余部分不能打开,TestNG没有给出任何错误,继续传递。。无论如何,我真正想做的是,我尝试使页面对象模型框架类似于(MVC类型),但我希望所有数据都来自我的测试用例,我使用excel文件并运行它。另外,我想在激发测试结果(通过/失败)和实际结果后编写excel。如果您有任何想法或链接可以帮助我构建Selenium MVC框架。这里是一个示例MVC框架,我感谢您的帮助;在粘贴内容上方的T行,尤其是在Firefox中运行时。如果只剩下IE和Chrome,您可能没有设置外部驱动程序。请看:还有。至于你的MVC问题,这确实超出了这个问题的范围,但是网上有很多资源(例如)。