2022 年 32 个 Eclipse 示例 Selenium 项目
已发表: 2021-01-04Selenium 是 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 校友身份、实用的实践顶点项目和顶级公司的工作协助。

