如何使用java调用selenium中不同页面中的类

我创建了两个类,它们在 selenium 中从不同的 Excel 工作表读取数据 那么如何创建对象并使用 java 调用第二个类而不从脚本中提供任何数据。


在第二类中有参数。我想从 Excel 工作表中获取这些数据而不从类文件中提供任何数据。当我创建如下代码时,它没有正确运行。它显示了这个错误:


"Cannot inject @Test annotated Method [successfullycreaterate] 

with [class java.lang.String, class java.lang.String, class java.lang.String, 

class java.lang.String, class java.lang.String, class java.lang.String, 

class java.lang.String, class java.lang.String, class java.lang.String, 

class java.lang.String]."

第一类


    @Test(dataProvider = "excelData")

    public void read(String username,String password) throws InterruptedException {


        driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);



        //handle popup window

        Set<String> windowId = driver.getWindowHandles();    // get  window id of current window

         Iterator<String> itererator = windowId.iterator();   


         String mainWinID = itererator.next();

         String  newAdwinID = itererator.next();


         driver.switchTo().window(newAdwinID);

         System.out.println(driver.getTitle());

         Thread.sleep(3000);




         WebDriverWait wait=new WebDriverWait(driver,3);


         WebElement uname= wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath( "//input[@id='j_username']")));

         uname.sendKeys(username);


         WebElement pwd= wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath( "//*[@id=\"j_password\"]")));

         pwd.sendKeys(password);


         WebElement login= driver.findElement(By.xpath("//*[@id=\"btnLogin\"]"));

         login.click();



    }

    @Test

    public void successfullycreaterate(String rateplan, String date, String hotel, String datevalidfrm, String datevalidto, String ratecatagory, String setcurrency, String taxlevel, String channel, String childlevel) throws IOException, InterruptedException   {

        CreateRate execute=new CreateRate();

        execute.successfullyCreate(rateplan, date, hotel, datevalidfrm, datevalidto, ratecatagory, setcurrency, taxlevel, channel, childlevel);


    } 



}


紫衣仙女
浏览 120回答 1
1回答

阿晨1998

您提到的错误“无法注入@Test 注释方法”是因为我们无法将参数提供给@Test 方法,而只能使用dataProvider。我认为您在 firstClass 文件的第二个 @Test 注释中缺少对 dataProvider 的调用,而您在第一个 @Test 注释上做得很好。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java