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 校友身份、实用的实践顶点项目和顶级公司的工作协助。

为未来的职业做准备

立即申请软件工程硕士