File IO ir kritiska jebkura programmatūras procesa sastāvdaļa. Mēs bieži izveidojam failu, atveram to un kaut ko atjauninām vai izdzēšam no sava datora. Tas pats attiecas uz Selenium Automation. Mums ir nepieciešams process, lai manipulētu ar failiem ar Selenium.
Java nodrošina mums dažādas klases failu manipulēšanai ar selēnu. Šajā apmācībā mēs uzzināsim, kā mēs varam lasīt un rakstīt Excel failā, izmantojot Java IO pakotni un Apache POI bibliotēku.
Apache IP selēnā
Apache POI Selēns ir plaši izmantots API selēna datiem TESTĒŠANA. Tā ir Java bibliotēkā ierakstīta POI bibliotēka, kas lietotājiem nodrošina API manipulēšanai ar Microsoft dokumentiem, piemēram, .xls un .xlsx. Lietotāji var viegli izveidot, modificēt un lasīt / rakstīt Excel failos. IP nozīmē “Poor Obfuscation Implementation”.
- Kā rīkoties ar Excel failu, izmantojot IP (Maven POM Dependency)
- Nodarbības un saskarnes IP
- Lasīšanas / rakstīšanas darbība
- Lasīt datus no Excel faila
- Rakstiet datus Excel failā
- Excel manipulācijas, izmantojot JXL API
Eksportē Excel
Kā rīkoties ar Excel failu, izmantojot IP (Maven POM Dependency)
Lai lasītu un rakstītu Excel failu Java, Apache nodrošina ļoti slavenu bibliotēkas IP. Šī bibliotēka spēj pietiekami lasīt un rakstīt gan Excel XLS, gan XLSX failu formātus.
Lai lasītu XLS failus, POI bibliotēka nodrošina HSSF ieviešanu.
Lai lasītu XLSX, jāizvēlas POI bibliotēkas XSSF ieviešana . Detalizēti izpētīsim šīs ieviešanas iespējas.
Ja projektā izmantojat Maven, Maven atkarība būs
org.apache.poi poi 4.1.1
Vai arī varat vienkārši lejupielādēt jaunākās POI burkas no vietnes http://poi.apache.org/download.html un lejupielādēt jaunāko zip failu
Lejupielādējot šīs burkas zip failu, tas ir jāatsprauž un jāpievieno šīs visas burkas sava projekta klases ceļam.
Nodarbības un saskarnes IP:

Tālāk ir saraksts ar dažādām Java saskarnēm un klasēm POI, lai lasītu XLS un XLSX failu
- Darbgrāmata : XSSFWorkbook un HSSFWorkbook klases ievieš šo saskarni.
- XSSFWorkbook : ir XLSX faila klases attēlojums.
- HSSFWorkbook : ir XLS faila klases attēlojums.
- Lapa : XSSFSheet un HSSFSheet klases ievieš šo saskarni.
- XSSFSheet : ir klase, kas attēlo lapu XLSX failā.
- HSSFSheet : ir klase, kas attēlo lapu XLS failā.
- Rinda : XSSFRow un HSSFRow klases ievieš šo saskarni.
- XSSFRow : Vai klase apzīmē rindu XLSX faila lapā.
- HSSFRow : ir klase, kas apzīmē rindu XLS faila lapā.
- Šūna : XSSFCell un HSSFCell klases ievieš šo saskarni.
- XSSFCell : ir klase, kas attēlo šūnu XLSX faila rindā.
- HSSFCell: ir klase, kas attēlo šūnu XLS faila rindā.
Lasīšanas / rakstīšanas operācija
Šajā piemērā mēs apsvērsim tālāk norādīto Excel faila formātu
Lasīt datus no Excel faila
Pilnīgs piemērs: Šeit mēs mēģinām nolasīt datus no Excel selēnā:
pakete excelExportAndFileIO;importēt java.io.File;importēt java.io.FileInputStream;importēt java.io.IOException;importēt org.apache.poi.hssf.usermodel.HSSFWorkbook;importēt org.apache.poi.ss.usermodel.Row;importēt org.apache.poi.ss.usermodel.Sheet;importēt org.apache.poi.ss.usermodel.Workbook;importēt org.apache.poi.xssf.usermodel.XSSFWorkbook;publiskā klase ReadGuru99ExcelFile {public void readExcel (String filePath, String fileName, String sheetName) izmet IOException {// Lai atvērtu failu xlsx, izveidojiet File klases objektuFile file = new File (filePath + "\\" + fileName);// Izveidojiet klases FileInputStream objektu, lai lasītu Excel failuFileInputStream inputStream = jauns FileInputStream (fails);Darbgrāmata guru99Workbook = null;// Atrodiet faila paplašinājumu, sadalot faila nosaukumu apakšstringā un iegūstot tikai paplašinājuma nosaukumuString fileExtensionName = fileName.substring (fileName.indexOf ("."));// Pārbaudiet nosacījumu, vai fails ir xlsx failsja (fileExtensionName.equals (". xlsx")) {// Ja tas ir xlsx fails, izveidojiet XSSFWorkbook klases objektuguru99Workbook = jauns XSSFWorkbook (inputStream);}// Pārbaudiet nosacījumu, vai fails ir xls failscits, ja (fileExtensionName.equals (". xls")) {// Ja tas ir xls fails, izveidojiet HSSFWorkbook klases objektuguru99Workbook = jauns HSSFWorkbook (inputStream);}// Izlasiet lapu darbgrāmatas iekšpusē pēc nosaukumaLapa guru99Sheet = guru99Workbook.getSheet (sheetName);// Atrodiet rindu skaitu Excel failāint rowCount = guru99Sheet.getLastRowNum () - guru99Sheet.getFirstRowNum ();// Izveidojiet cilpu pār visām Excel faila rindām, lai to lasītupar (int i = 0; iPiezīme: šeit mēs neizmantojam Testng ietvaru. Palaidiet klasi kā Java lietojumprogrammu, izmantojot Selenium funkciju read excel, kā parādīts iepriekšējā piemērā.
Rakstiet datus Excel failā
Pilnīgs piemērs: Šeit mēs mēģinām rakstīt datus no Excel faila, pievienojot jaunu rindu Excel failā
pakete excelExportAndFileIO;importēt java.io.File;importēt java.io.FileInputStream;importēt java.io.FileOutputStream;importēt java.io.IOException;importēt org.apache.poi.hssf.usermodel.HSSFWorkbook;importēt org.apache.poi.ss.usermodel.Cell;importēt org.apache.poi.ss.usermodel.Row;importēt org.apache.poi.ss.usermodel.Sheet;importēt org.apache.poi.ss.usermodel.Workbook;importēt org.apache.poi.xssf.usermodel.XSSFWorkbook;publiskā klase WriteGuru99ExcelFile {public void writeExcel (String filePath, String fileName, String sheetName, String [] dataToWrite) izmet IOException {// Lai atvērtu failu xlsx, izveidojiet File klases objektuFile file = new File (filePath + "\\" + fileName);// Izveidojiet klases FileInputStream objektu, lai lasītu Excel failuFileInputStream inputStream = jauns FileInputStream (fails);Darbgrāmata guru99Workbook = null;// Atrodiet faila paplašinājumu, sadalot faila nosaukumu apakšstringā un iegūstot tikai paplašinājuma nosaukumuString fileExtensionName = fileName.substring (fileName.indexOf ("."));// Pārbaudiet nosacījumu, vai fails ir xlsx failsja (fileExtensionName.equals (". xlsx")) {// Ja tas ir xlsx fails, izveidojiet XSSFWorkbook klases objektuguru99Workbook = jauns XSSFWorkbook (inputStream);}// Pārbaudiet nosacījumu, vai fails ir xls failscits, ja (fileExtensionName.equals (". xls")) {// Ja tas ir xls fails, izveidojiet XSSFWorkbook klases objektuguru99Workbook = jauns HSSFWorkbook (inputStream);}// Lasīt Excel lapu pēc lapas nosaukumaLapas lapa = guru99Workbook.getSheet (sheetName);// Iegūt pašreizējo rindu skaitu Excel failāint rowCount = lapa.getLastRowNum () - lapa.getFirstRowNum ();// Iegūstiet pirmo rindu no lapasRindas rinda = sheet.getRow (0);// Izveidojiet jaunu rindu un pievienojiet to lapas beigāsRinda newRow = sheet.createRow (rowCount + 1);// Izveidojiet cilpu pār jaunizveidotās Row šūnupar (int j = 0; j
Excel manipulācijas, izmantojot JXL API
JXL ir arī vēl viens slavens burciņš, lai lasītu Excel failu Java un rakstītu failus. Mūsdienās IP tiek izmantota lielākajā daļā projektu, taču pirms IP JXL bija tikai Java API, lai veiktu manipulācijas ar Excel. Tas ir ļoti mazs un vienkāršs API Excel lasīšanai Selenium.
PADOMI. Mans ieteikums ir neizmantot JXL nevienā jaunā projektā, jo bibliotēka nav aktīvi attīstīta kopš 2010. gada un trūkst funkcijas salīdzinājumā ar IP API.
Lejupielādēt JXL:
Ja vēlaties strādāt ar JXL, varat to lejupielādēt no šīs saites
https://sourceforge.net/projects/jexcelapi/files/jexcelapi/2.6.12/
Šajā JXL saspiestajā failā varat arī iegūt demonstrācijas piemēru.
Dažas funkcijas:
- JXL spēj lasīt Excel failu Selenium darbgrāmatai 95, 97, 2000, XP, 2003.
- Mēs varam strādāt ar angļu, franču, spāņu, vācu valodu.
- Diagrammas kopēšana un attēlu ievietošana programmā Excel ir iespējama
Šķērslis:
- Mēs varam rakstīt tikai programmu Excel 97 un jaunākas versijas (rakstīšana programmā Excel 95 netiek atbalstīta).
- JXL neatbalsta Excel faila XLSX formātu.
- Tas ģenerē izklājlapu Excel 2000 formātā.
Kopsavilkums:
- Excel failu var nolasīt ar Java IO darbību. Lai to izdarītu , mums jāizmanto Apache POI Jar .
- Excel failā ir divu veidu darbgrāmata, XLSX un XLS faili.
- IP ir dažādas saskarnes darbgrāmata, lapa, rinda, šūna.
- Šīs saskarnes tiek ieviestas, izmantojot atbilstošās XLS ( HSSFWorkbook, HSSFSheet, HSSFRow, HSSFCell ) un XLSX ( XSSFWorkbook, XSSFSheet, XSSFRow, XSSFCell ) failu manipulācijas klases.
- JXL ir vēl viena API Excel apstrādei Selenium.
- JXL nevar strādāt ar Excel formātu XLSX.