2015-11-09 1 views
1

Я собираюсь начать новую роль в ближайшее время в качестве аналитика QA Software, и я пытаюсь практиковать мое автоматическое тестирование, разрабатывая некоторые основные автоматизированные тестовые сценарии с использованием Java и Selenium WebDriver , Я очень новичок в автоматизации и Java в целом, поэтому я хотел практиковать, используя форму популярного туристического сайта в качестве основы. Сценарий должен позволять вводить данные, которые были предварительно подготовлены в электронной таблице Excel, фиксировать определенные результаты на сайте на основе входных данных, а затем экспортировать эти результаты в соответствующую ячейку в той же самой электронной таблице Excel. Я на самом деле создал сценарий, который, кажется, сделать это достаточно хорошо, однако каждый раз, когда я бегу сценарий, я получаю сообщение об ошибке, которое гласит:Автоматический тестовый пример с вводом и выводом из Excel

log4j:WARN No appenders could be found for logger (org.apache.http.client.protocol.RequestAddCookies). 
log4j:WARN Please initialize the log4j system properly. 
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. 

Остальная часть сценария, кажется, уходят довольно гладко, но Я действительно не уверен, что эта ошибка имеет в виду или как ее исправить. Я пошел к URL-адресу, который он перечислял, но это было похоже на чтение полностью иностранного языка. Я много гулял, но мне еще нужно найти что-нибудь, что касается моего конкретного экземпляра этого сообщения об ошибке, и я надеялся, что кто-то сможет мне помочь. Большинство скриптов были собраны примерами, которые я нашел в Интернете в той или иной форме, и я собрал его, чтобы делать то, что я хочу от него. Я не уверен, что это актуально или нет, но у меня есть проект, загруженный всеми последними версиями Selenium WebDriver, Apache POI и Junit, внешними файлами JAR. Я действительно новичок в Java, Selenium WebDriver и вообще в автоматизации, поэтому, если у кого-то есть решение, особенно «почему» за этой ошибкой, это было бы высоко оценено. Весь мой код ниже.

package TestCases; 

import java.io.FileInputStream; 
import java.io.FileOutputStream; 
import java.io.InputStream; 
import java.util.concurrent.TimeUnit; 

import org.apache.poi.ss.usermodel.Cell; 
import org.apache.poi.ss.usermodel.Row; 
import org.apache.poi.ss.usermodel.Sheet; 
import org.apache.poi.ss.usermodel.Workbook; 
import org.apache.poi.ss.usermodel.WorkbookFactory; 
import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.firefox.FirefoxDriver; 

public class OrbitzDotComBasicFormEntry1 { 

    public static void main(String[] args) throws Exception { 

     WebDriver wd = new FirefoxDriver(); 
     String baseURL = "http://www.orbitz.com/"; 
     wd.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); 

     InputStream inp = new FileInputStream("/path/to/spreadsheet/Workbook1.xlsx"); 
     Workbook wb = WorkbookFactory.create(inp); 
     Sheet sheet = wb.getSheetAt(0); 

     String departLocation; 
     String arriveLocation; 
     String departureDate; 
     String returnDate; 

     int rowcount=sheet.getLastRowNum(); 

     for(int i=1;i<=rowcount;i++){ 

      Row row = sheet.getRow(i); 
      Cell cell = row.getCell(4); 
      departLocation=sheet.getRow(i).getCell(0).getStringCellValue(); 
      arriveLocation=sheet.getRow(i).getCell(1).getStringCellValue(); 
      departureDate=sheet.getRow(i).getCell(2).getStringCellValue(); 
      returnDate=sheet.getRow(i).getCell(3).getStringCellValue(); 

      wd.get(baseURL); 

      //Selects the "Flights Only" radio button 
      wd.findElement(By.id("search.type.air")).click(); 
      Thread.sleep(1000); 

      //Enter variable text into the "From" field 
      wd.findElement(By.name("ar.rt.leaveSlice.orig.key")).click(); 
      wd.findElement(By.name("ar.rt.leaveSlice.orig.key")).clear(); 
      wd.findElement(By.name("ar.rt.leaveSlice.orig.key")).sendKeys(departLocation); 

      //Enter variable text into the "To" field 
      wd.findElement(By.name("ar.rt.leaveSlice.dest.key")).click(); 
      wd.findElement(By.name("ar.rt.leaveSlice.dest.key")).clear(); 
      wd.findElement(By.name("ar.rt.leaveSlice.dest.key")).sendKeys(arriveLocation); 

      //Enter variable text into the "Leave" field 
      wd.findElement(By.name("ar.rt.leaveSlice.date")).click(); 
      wd.findElement(By.name("ar.rt.leaveSlice.date")).clear(); 
      wd.findElement(By.name("ar.rt.leaveSlice.date")).sendKeys(departureDate); 
      Thread.sleep(1000); 

      //Enter variable text into the "Return" field 
      wd.findElement(By.name("ar.rt.returnSlice.date")).click(); 
      wd.findElement(By.name("ar.rt.returnSlice.date")).clear(); 
      wd.findElement(By.name("ar.rt.returnSlice.date")).sendKeys(returnDate); 
      Thread.sleep(1000); 

      //Clicks the "Search Flights" button 
      wd.findElement(By.name("search")).click(); 

      Thread.sleep(30000); 

      String bestPrice = wd.findElement(By.cssSelector(".money.small-cents.small-symbol")).getText(); 

      if (cell == null) 
       cell = row.createCell(4); 
       cell.setCellType(Cell.CELL_TYPE_STRING); 
       cell.setCellValue(bestPrice); 

       FileOutputStream fileOut = new FileOutputStream("/path/to/spreadsheet/Workbook1.xlsx"); 
       wb.write(fileOut); 
       fileOut.close(); 

      } 

     wd.close(); 

     System.out.println("The Class script has finished running"); 

     } 

} 
+0

Так что ваш код работает нормально, но вы просто видите предупреждение log4j? Предотвращает ли ваш код его выполнение из-за предупреждения? Я пытаюсь понять, является ли это предупреждением или ошибкой. – LINGS

+0

Вот он, http://stackoverflow.com/questions/12532339/no-appenders-could-be-found-for-loggerlog4j – LINGS

+0

Код, кажется, работает просто отлично, я просто получаю это сообщение об ошибке, а также код работает. – Jimono123

ответ

0

Я думаю, что LINGS связали достаточный ответ выше, этот ответ является более общим для вашей ситуации и новой роли. Если вы ожидаете, что будете работать с Selenium, я бы потратил время, чтобы прочитать лучшие и худшие практики на веб-страницах Selenium.

https://seleniumhq.github.io/docs/best.html#best_practices https://seleniumhq.github.io/docs/worst.html#worst_practices