2022 年 32 個 Eclipse 示例 Selenium 項目

已發表: 2021-01-04

Selenium 是 Web 測試自動化部分的傑出技術之一。 通過正確使用 Selenium,您可以使您的測試過程非常高效,並在很短的時間內完成多項任務。

這就是為什麼學習 Selenium 具有重要意義。 在本文中,您將學習如何使用 Eclipse(另一種用於基於 Java 的項目的流行技術)處理 Selenium 項目。

首先,我們將討論這些技術的基礎知識。 然後我們將了解如何使用 Eclipse 啟動 Selenium 項目。 我們還分享了一個示例項目,您可以從中獲取靈感。 讓我們開始吧。

目錄

什麼是硒?

Selenium 是一個可移植的框架,也是一種流行的 Web 應用測試工具。 它兼容多種編程語言,如 Python、C# 和 Java。 您可以使用這些語言通過 Selenium 執行各種任務,例如創建測試腳本。 儘管如此,大多數用戶還是更喜歡將 Java 與這個框架一起使用,因為它比其他框架更易於使用。

Selenium 不是一個單一的軟件應用程序。 它是一套可用於執行不同類型測試的各種工具。

Selenium 在其套件中有以下工具:

  • Selenium IDE(集成開發環境)
  • Selenium 網絡驅動程序
  • Selenium 客戶端 API
  • Selenium 遙控器(已棄用)
  • 硒網格

Jason Huggins 在 2004 年創建了 Selenium。他想自動化重複的手動測試過程,所以他製作了一個 JavaScript 程序。 同樣的程序成為 Selenium Core。 除了 Jason,許多其他開發人員也為創建 Selenium 套件做出了貢獻。

為什麼叫硒

Selenium 的名字來源於一個笑話。 在其開發時,還有另一個名為 Mercury Interactive 的主要自動化測試框架。 傑森開玩笑地向他的朋友推薦了硒,因為硒是一種流行的汞中毒解毒劑。 他的朋友們接受了這個建議,並給它起了現在的名字。

硒的特點

Selenium 有很多特性; 最突出的是:

  • Selenium 幾乎兼容業界所有主流瀏覽器,包括 Chrome、Opera、Safari 等。
  • 該套件有一組特定的命令,稱為 Selenese。 它們持有每個 Selenium 命令的序列。
  • 您可以通過 Selenium 的元素定位器在網頁上定位元素。
  • 您不能使用 Selenium 來測試桌面應用程序或移動應用程序。 您只能將其用於 Web 應用程序測試。

閱讀: Selenium 項目理念

什麼是馬文?

Maven 是開發人員主要用於 Java 項目的自動化工具。 除了 Java,您還可以將它與其他幾種編程語言一起使用,例如 C#、Scala、Ruby 等。它是 Apache Software Foundation 的產品,因此它是一個開源工具。

Maven 使構建過程更加直接,並為您提供了一個統一的構建系統。 它確保 Java 開發人員在處理 Java 項目時遵循最佳開發實踐。 它於 2002 年進入行業,從那時起,它已成為最重要的 Apache 項目之一。

Maven 的名字來源於意第緒語“maven”,意思是“知識的積累者”。

Maven的特點

  • Maven確保各個項目之間的一致性
  • 它通過為模塊或項目提供樣板來簡化項目設置
  • 可以同時處理多個項目
  • Maven 可以將任意數量的項目構建到其特定的輸出類型中,例如 WAR 或 JAR,而在許多情況下不需要編寫腳本
  • 它基於 POM(項目對像模型)

現在我們已經討論了 Selenium 和 Maven,讓我們了解 Eclipse IDE。 如果您想使用 Eclipse 處理 Selenium 項目,那麼掌握這三個方面的工作知識至關重要。

什麼是 Eclipse IDE?

Eclipse 是一個 IDE(集成開發環境),可幫助開發人員使用 Selenium 和相關技術。 您可以使用 Eclipse 開發 C++、Ruby、Python、C、Perl、Java 等應用程序。

Eclipse IDE 的功能

  • 它是一個開源工具,這意味著您可以免費使用它。
  • Eclipse IDE 的基礎平台具有多個插件,並且可以使用更多插件進行擴展。
  • 您可以使用相應的插件將 Eclipse 轉換為任何編程語言的 IDE。
  • JDT(Java 開發工具)項目提供了一個將 Eclipse 用作 Java IDE 的插件。 同樣,PyDev 是一個插件,允許您將 Eclipse 用作 Python IDE。
  • 您可以使用 Eclipse 平台及其插件來創建 IDE、客戶端應用程序等。

如何使用 Eclipse IDE 創建 Selenium 項目

在本文的這一部分中,我們將了解如何使用 Eclipse 創建 Selenium 項目。 這是從事 Selenium 項目的第一步,許多初學者都在為它而苦惱。

在通過 Eclipse 創建 Selenium 項目之前,您需要在系統中安裝 Maven 和 TestNG。 確保在開始此過程之前安裝它們(Maven 和 TestNG)。

第1步:

打開 Eclipse 並右鍵單擊 Package Explorer 部分。 您會看到一個菜單彈出窗口。 選擇“新建”按鈕,這將打開另一個菜單以選擇“其他...”選項。

第2步:

當您單擊“其他...”按鈕時,它將打開一個新窗口。 選擇 Maven 項目,然後單擊“下一步”按鈕。

第 3 步:

現在將出現一個新窗口。 在這裡,您必須勾選“創建一個簡單的項目(跳過原型選擇)”框。 之後,選擇“下一步”按鈕。

第四步:

在本節中,您必須輸入 Group Id 和 Artifact Id。 它們都對您的項目命名至關重要。 組 ID 將幫助您在所有其他項目中識別您的項目。 它必須遵循包名稱規則。 這意味著它應該以您控制的反向域名開頭。 Maven 不強制執行此命名規則。 但是,由於該工具的廣泛流行,遵循此規則已成為一種常見做法。 您也可以使用組 ID 創建多個子組。

Artifact Id 是沒有版本的 jar 的名稱。 如果你是它的創建者,你可以選擇任何你想要的名字,只要你不使用任何奇怪的符號並且只使用小寫字母。

在為您的項目輸入 Group Id 和 Artifact Id 時,請記住以上幾點。 輸入這些詳細信息後,單擊“完成”按鈕。

步驟#5:

讓我們將必要的依賴項添加到我們項目的 POM 文件中。 前往 pom.xml 文件並在 Eclipse 中選擇“pom.xml”選項卡。 現在,添加與 TestNG 和 Selenium WebDriver 相關的依賴項。

步驟#6:

在此步驟中,通過創建 TestNG 類來獲取 testng.xml 文件。 在此文件中復制以下代碼:

包裝測試;

導入 org.openqa.selenium.WebDriver;

導入 org.openqa.selenium.firefox.FirefoxDriver;

導入 org.testng.annotations.Test;

導入 org.testng.annotations.BeforeClass;

導入 org.testng.annotations.AfterClass;

公共類 NewTest {

公共 WebDriver 驅動程序;

@測試

公共無效openMyBlog(){

driver.get(“https://www.softwaretestingmaterial.com/”);

}

@課前

公共無效 beforeClass() {

System.setProperty(“webdriver.gecko.driver”, “D:\\Selenium\\Drivers\\geckodriver.exe”);

驅動程序 = 新的 FirefoxDriver();

}

@下課以後

公共無效後類(){

driver.quit();

}

}

第 7 步:

現在,您可以使用 TestNG 文件在 Eclipse 中運行您的 Selenium 項目。

在進入下一個教程之前,請確保您了解上述教程。 這是因為,在下一節中,我們將討論一個可以使用 Eclipse 構建的 Selenium 項目的工作示例。

另請閱讀:印度的硒開發人員薪水

從世界頂級大學獲得軟件開發課程獲得行政 PG 課程、高級證書課程或碩士課程,以加快您的職業生涯。

Eclipse 的 Selenium 項目:一個示例

在這裡,我們分享了基於 Selenium 的航班預訂解決方案的代碼。 該軟件選擇航班的到達和離開地點以及相同的日期。 該工具在 MakeMyTrip 網站上執行這些任務。

您可以從這個項目中獲得靈感,自己用 Eclipse 創建一個類似的 Selenium 項目。 如果您之前沒有參與過 Selenium 項目,我們建議您先處理該項目的較小版本。

例如,您可以創建一個僅選擇到達和離開位置的程序。 另一方面,如果你想擴展這個項目,你可以添加更多的功能。

瀏覽器

包瀏覽器;

導入 org.openqa.selenium.WebDriver;

導入 org.openqa.selenium.chrome.ChromeDriver;

公共類瀏覽器選擇

{

靜態 WebDriver 驅動程序;

公共靜態 WebDriver UsingChrome()

{

System.setProperty(“webdriver.chrome.driver”, “E:\\SeleniumLibs\\\\chromedriver_win32\\chromedriver.exe”);

驅動程序 = 新的 ChromeDriver();

driver.manage().window().maximize();

回程司機;

}

}

代碼

包makemytrip;

導入 java.awt.AWTException;

導入 java.awt.Robot;

導入 java.awt.event.KeyEvent;

導入 java.util.List;

導入 java.util.concurrent.TimeUnit;

導入 org.openqa.selenium.By;

導入 org.openqa.selenium.JavascriptExecutor;

導入 org.openqa.selenium.WebDriver;

導入 org.openqa.selenium.WebDriverException;

導入 org.openqa.selenium.WebElement;

導入 org.testng.annotations.AfterMethod;

導入 org.testng.annotations.BeforeMethod;

導入 org.testng.annotations.Test;

導入瀏覽器。瀏覽器選擇;

公共類 MakeMyTripProject

{

WebDriver 驅動程序;

@BeforeMethod

公共無效 OpenBrowser()

{

驅動程序 = BrowserSelection.UsingChrome();

}

@測試

public void TripDetails() 拋出 InterruptedException、AWTException

{

driver.get(“https://www.makemytrip.com/”);

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

線程.sleep(5000);

嘗試

{

/*String frameStatus = driver.findElement(By.id(“webklipper-publisher-widget-container-notification-frame”)).getTagName();

System.out.println(frameStatus);

driver.switchTo().frame(“notification-frame-31764456”);

driver.findElement(By.xpath(“.//*[@id='webklipper-publisher-widget-container-notification-close-div']/i”)).click();

driver.switchTo().defaultContent();

線程.sleep(3000); */

driver.findElement(By.xpath(“//input[@id='hp-widget__sfrom']”)).click();

driver.findElement(By.xpath(“//input[@id='hp-widget__sfrom']”)).clear();

//driver.findElement(By.xpath(“//input[@id='hp-widget__sfrom']”)).sendKeys(“Goa”);

線程.sleep(2000);

List<WebElement> fromCities = driver.findElements(By.xpath(“//ul[@id='ui-id-1′]/li/div/p/span[1]”));

System.out.println(fromCities.size()+”\n”);

for(int i=0;i<fromCities.size();i++)

{

WebElement 元素=fromCities.get(i);

System.out.println(element.getAttribute(“innerHTML”));

}

//driver.findElement(By.xpath(“//ul[@id='ui-id-1']/li/div/p/span”)).click();

driver.findElement(By.xpath(“//li[contains(@aria-label,'Top Cities : Goa, India')]/div/p/span[1]”)).click();

driver.findElement(By.xpath(“//input[@id='hp-widget__sTo']”)).click();

driver.findElement(By.xpath(“//input[@id='hp-widget__sTo']”)).clear();

//driver.findElement(By.xpath(“//input[@id='hp-widget__sTo']”)).sendKeys(“Mumbai”);

線程.sleep(2000);

List<WebElement> toCities = driver.findElements(By.xpath(“//ul[@id='ui-id-2′]/li/div/p/span[1]”));

System.out.println(toCities.size()+”\n”);

for(int i=0;i<toCities.size();i++)

{

WebElement 元素=toCities.get(i);

System.out.println(element.getAttribute(“innerHTML”));

}

//driver.findElement(By.xpath(“//ul[@id='ui-id-2']/li/div/p/span”)).click();

driver.findElement(By.xpath(“//ul[@id='ui-id-2']/li[3]/div/p/span[1]”)).click();

線程.sleep(2000);

driver.findElement(By.xpath(“//input[@id='hp-widget__depart']”)).click();

線程.sleep(2000);

字符串日期 = “2018 年 10 月 10 日”;

字符串拆分器[] = date.split(“-”);

字符串月_年 = 拆分器[1];

字符串日=拆分器[0];

System.out.println(month_year);

System.out.println(day);

選擇日期(月_年,日);

線程.sleep(3000);

driver.findElement(By.xpath(“//button[@id='searchBtn']”)).click();

線程.sleep(5000);

線程.sleep(2000);

JavascriptExecutor js = (JavascriptExecutor) 驅動程序;

js.executeScript(“window.scrollBy(0,3000)”);

/*機器人機器人=新機器人();

機器人.keyPress(KeyEvent.VK_PAGE_DOWN);

機器人.keyRelease(KeyEvent.VK_PAGE_DOWN);*/

線程.sleep(5000);

driver.findElement(By.xpath(“//div[@id='aln_AI_dep']/span[3]”)).click();

線程.sleep(5000);

List<WebElement> 航班 = driver.findElements(By.xpath(“//div[@class='top_first_part clearfix']/div/span/span[2]/span[1]”));

System.out.println(“印度航空航班搜索結果編號:—”+flights.size());

}catch(WebDriverException e)

{

System.out.println(“例外是:—“+e+”\n”);

}

}

公共 void selectDate(String monthyear, String Selectday) 拋出 InterruptedException

{

List<WebElement> 元素 = driver.findElements(By.xpath(“//div[@class='ui-datepicker-title']/span[1]”));

for (int i=0; i<elements.size();i++)

{

System.out.println(elements.get(i).getText());

//選擇月份

if(elements.get(i).getText().equals(monthyear))

{

//選擇日期

List<WebElement> days = driver.findElements(By.xpath(“//div[@class='ui-datepicker-inline ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all ui -datepicker-multi ui-datepicker-multi-2′]/div[2]/table/tbody/tr/td/a”));

對於(WebElement d:天)

{

System.out.println(d.getText());

if(d.getText().equals(Selectday))

{

d.click();

線程.sleep(10000);

返回;

}

}

}

}

driver.findElement(By.xpath(“//div[@class='ui-datepicker-inline ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all ui-datepicker-multi ui- datepicker-multi-2′]/div[2]/div/a/span”)).click();

選擇日期(月年,選擇日);

}

@AfterMethod

公共無效關閉瀏覽器()

{

driver.quit();

}

}

閱讀:初學者的 5 個有趣的 Selenium 項目想法和主題

學習使用 Eclipse 等創建 Selenium 項目

硒是一項非常重要的技術。 了解它將幫助您成為精通軟件測試的專業人士。 以下是有關 Selenium 和 Maven 的一些附加資源,供您進一步閱讀:

  • 如何創建 Maven 項目
  • 5 個有趣的 Selenium 項目創意
  • 30 個 Selenium 面試問題和答案

如果您想了解有關 Selenium 或軟件測試的更多信息,我們建議您參加計算機科學課程。 您將通過交互式測驗、問題和項目從行業摘錄中了解。

我們希望您發現本指南有用。 如果您對本文或 Selenium 有任何疑問,請通過下面的評論部分詢問我們。 我們很樂意聽取您的意見。

如果您有興趣了解有關全棧軟件開發的更多信息,請查看 upGrad 和 IIIT-B 的全棧軟件開發執行 PG 計劃,該計劃專為工作專業人士設計,提供 500 多個小時的嚴格培訓、9 個以上的項目,和任務、IIIT-B 校友身份、實用的實踐頂點項目和頂級公司的工作協助。

為未來的職業做準備

立即申請軟件工程碩士