Selenium WebDriver 2025

WebDriver 硒

Selenium WebDriver 是一个用于执行跨浏览器测试的 Web 框架。该程序测试基于 Web 的应用程序以确保它们按预期工作。要编写测试脚本,Selenium WdebDriver 允许您选择一种编程语言。它不能处理窗口组件,尽管可以使用 Sikuli、Auto IT 等程序来规避此限制。 WebDriver 是一个本应简洁明了的编程接口,它有效地驱动了浏览器。 WebDriver 还允许您使用编程语言编写测试脚本(在 Selenium IDE 中不可能)。

请记住,WebDriver 在操作系统级别工作。另外,请记住,不同的浏览器与操作系统的交互方式不同。发布新浏览器时,它与操作系统的通信方式可能不同于其他浏览器。

免费的 Selenium WebDriver 在线练习测试

Selenium WebDriver 是已经升级的Selenium RC版本。它被投放市场以解决 Selenium RC 的局限性。它的体系结构与 RC 的体系结构根本不同,尽管它是 RC 的改进版本。 Selenium WebDriver 与 Selenium RC 一样,支持许多编程平台以实现更大的灵活性,并且不需要任何编程语言的知识。 Selenium WebDriver 的优点如下:

  • 它适用于各种语言,包括 Python、Java、Perl、Ruby 等。
  • 与其他工具相比,Selenium WebDriver 可以更快地完成测试脚本的执行。

  • 它是用于测试基于 Web 的应用程序的最广泛使用的开源工具之一,并且使用简单。您还可以使用它运行跨浏览器兼容性测试。

  • API(应用程序编程接口)比 Selenium RC 的更简洁。

  • 支持多种操作系统,包括Windows、Mac OS X、Linux、Unix等。

  • 支持 Chrome、Firefox、Opera、Safari 和 Internet Explorer 等现代浏览器。

  • 它还可以与 iPhoneDriver、HtmlUnitDriver 和 AndroidDriver 一起使用。

如何为 PHP 安装 Selenium WebDriver

PHP-webdriver 包是一个 Selenium WebDriver 语言绑定,允许您从 PHP 控制 Web 浏览器。该库实现了实验性的 W3C WebDriver 支持以及 JsonWireProtocol 支持。尽管 W3C WebDriver 支持尚未完成,但它应该允许通过 Geckodriver 以及更新版本的 Chrome 和 Chromedriver 对 Firefox 进行有限控制。作曲家可用于设置此项目。如果您还没有 Composer,可以下载它 作曲家.phar 二进制:

卷曲-sS https://getcomposer.org/installer | PHP

 

之后,安装库:

php composer.phar 需要 php-webdriver/webdriver

 

Selenium WebDriver 中的 8 个定位器

定位器 用于识别网页上的 HTML 元素,实际上所有 UI 自动化工具都可以使用定位器来实现此目的。按照同样的趋势,Selenium 可以使用“Locators”来识别 HTML 元素,通常称为“Selenium Locators”。 Selenium 定位器可以被认为是每个 Selenium 自动化测试脚本的基础。原因很简单:Selenium WebDriver 中的定位器帮助您与 DOM 组件进行所需的交互。在 Selenium Webdriver 中,有八种不同的定位器用于在网页上查找组件。

  • Id – 'id' 属性,与类一样,可以标识组件。
  • partialLinkText – 链接文本的一部分也可用于标识元素。
  • xpath – 用于查询 XML 文档的语言是 Xpath。同样可用于唯一标识任何页面上的 Web 元素。
  • ClassName – ClassName 运算符使用类属性来标识对象。
  • linkText – 超链接中的文本也可用于定位元素。
  • tagName – 标签也可用于定位元素。
  • cssSelector – CSS 是一种标记语言,可用于标识任何网络元素,并用于为网页建立样式指南。
  • name – 元素的名称也可用于标识它。

退出 Selenium WebDriver Python

Close() 和 quit() 是两个 Webdriver 命令,可以在 Selenium Webdriver 中结束浏览器会话。尽管这些策略经常互换使用,但它们有不同的用途。使用 Selenium 时通常会打开具有多个选项卡的多个浏览器,并且将使用 close() 和 quit() 方法关闭这些选项卡。 close() 方法用于关闭当前获得焦点的浏览器窗口,而 quit() 方法用于调用驱动程序。 dispose 方法优雅地一个一个地关闭所有浏览器窗口并结束 WebDriver 会话。

句法:

driver.close()

司机.退出()

硒的好处

如何使用 Java 关闭 Selenium WebDriver 中的弹出窗口

可用于关闭弹出窗口。弹出窗口由 getWindowHandles 和 getWindowHandle 方法处理。 getWindowHandle 方法存储焦点弹出的窗口句柄。迭代器方法用于在窗口句柄之间循环。默认情况下,Selenium 驱动程序可以控制父窗口。可以在此处找到关闭弹出窗口的 Java 代码。应该提到三种方法。

  • WebDriver.getWindowHandle() :此方法检索当前浏览器处理程序,然后可用于终止浏览器。
  • WebDriver.getWindowHandles() :要获取所有浏览器处理程序,请使用此方法。

  • WebDriver.switchTo().window(String windowHandler) : 在关闭一个网页之前,这个过程用于切换到它。

Selenium WebDriver 和网格之间的区别

Selenium Grid 是 Selenium 库或 Selenium 框架的一个组件。当你想在远程机器上运行测试时使用这个命令。 Selenium WebDriver 是 Selenium Client 库中的一个类,您可以将其作为依赖项包含在您的项目中。 Selenium Grid 是一个聪明的代理服务器,允许您在多台机器上并行运行测试。这是通过中央服务器向远程 Web 浏览器实例发送命令来实现的。 Selenium WebDriver 完成与 Selenium-RC 相同的工作,添加 WebDriver API 和原始的 1.x 绑定。它指的是语言绑定和独特的浏览器控制代码实现。与 Selenium WebDriver 不同,Selenium WebDriver 允许您按顺序在不同的浏览器/浏览器版本中测试用例,Selenium Grid 设置允许您同时在多个浏览器/浏览器版本中测试用例。

如何在 Selenium WebDriver 中单击下一步按钮

Selenium 中的“.click()”方法可以在您的 Web 应用程序中执行许多基于鼠标的操作。 Selenium 单击按钮方法可用于各种用途,包括选择单选按钮和复选框、单击任何按钮或链接、拖放、单击并按住等。尽管 Selenium 单击按钮方法是最基本的练习之一,它经常被滥用。即使是最有经验的测试人员似乎也忽略了 Selenium 的点击机制的完整实现。他们越来越专注于开发精心设计的测试用例,而忘记了在 Web 应用程序的 UI 中随意单击有时会导致错误。

选择 Selenium WebDriver 支持的语言

Selenium WebDriver 支持 Java、Python、Ruby、C#、JavaScript、Perl 和 PHP。有大量的框架可以与 WebDriver 一起使用。 JUnit、TestNG、RSpec、unitTest、PHPUnit 和 FitNesse 只是几个主要的受支持框架。以下是为您的 Selenium 自动化项目选择编程语言时需要考虑的一些注意事项。

  • 您的公司或客户可以根据他们的舒适程度或从该语言中获得的好处来选择用于构建 Selenium Automation 脚本的编程语言。
  • 以 Java 等编程语言编写的 Selenium Automation 脚本可用于测试以各种语言(如 C#、Ruby、Python 等)构建的 Web 应用程序。

Selenium WebDriver 最佳实践

Selenium 测试自动化最佳实践可以帮助您创建设计良好且可扩展的测试套件。在创建 Selenium 测试场景时,请记住 Selenium 是为自动化测试而设计的;因此,不要将它用于其他类型的测试,因为它可能会产生良好的结果。 “最佳实践”一词是指实现卓越结果的原则。如果您是 Selenium 的新手并且不确定它是什么,那么以下是最佳实践:

  • 实现页面对象模型
  • 最大化浏览器窗口
  • 使用 PageObjects 模式
  • 避免阻止睡眠呼叫。
  • 测试失败时截图
  • 为跨浏览器测试创建浏览器兼容性矩阵
  • 实施记录和报告
  • 合并等待命令
  • 将 BDD 框架与 Selenium 结合使用
  • 集中式文件夹结构

Selenium WebDriver 功能

所需能力 是一个包含一组键值对的 JSON 对象。在 Selenium 测试脚本中,它帮助 QA 定义基本的测试要求,例如操作系统、浏览器组合、浏览器版本等。当使用 Selenium 自动化测试来自动化我们的测试脚本时,我们必须考虑这些因素来建立一个特定的测试环境,我们的网站或 Web 应用程序应该在其中呈现良好。移动设备、移动浏览器、桌面设备、桌面浏览器、屏幕分辨率等都是这些上下文的示例。我们使用 Selenium 或 Appium 测试中的 Desired Capabilities 在我们的 Selenium 自动化测试脚本中声明这些环境。 DesiredCapabilities 类中的多个方法允许 QA 描述所需测试设置所需的属性。我们可以通过使用 Desired Capabilities 类中的不同功能来设置浏览器的属性。例如,浏览器的名称、版本号等。要为浏览器设置这些功能,我们使用键值对。 DesiredCapabilities 类中可访问的方法如下:

  • 设置能力();
  • 获取能力();
  • 设置浏览器名称();
  • 获取浏览器名称();
  • 设置版本();
  • 获取版本();
  • 设置平台();
  • 获取平台();

如何处理 Selenium WebDriver 中的身份验证弹出窗口

要访问某些服务器,公司有自己的代理设置。当您在浏览器中打开服务器时,会出现一个弹出窗口,要求您提供用户凭据才能获得访问权限。即使使用selenium脚本访问同一台服务器,我们也必须在手动访问服务器之前处理提示。 Selenium 可以处理身份验证弹出窗口。为此,我们必须在 URL 中包含用户凭据。必须将用户名和密码添加到 URL。

Selenium Web 驱动程序问答

Selenium WebDriver 是一个用于执行跨浏览器测试的 Web 框架。该程序测试基于 Web 的应用程序以确保它们按预期工作。您可以使用 Selenium WebDriver 以任何计算机语言开发测试脚本。

  • 作为第一步 (JDK),在您的计算机上下载并安装 Java 软件开发工具包。
  • Eclipse IDE(集成开发环境)。尽快为 Java 开发人员获取最新版本的 Eclipse IDE。
  • 转到网站并下载 Selenium Java 客户端驱动程序。
  • 使用 WebDriver 设置 Eclipse IDE。

getWindowHandles 和 getWindowHandle 方法处理弹出窗口。 getWindowHandles 方法将所有打开的窗口句柄保存在一个 Set 数据结构中。 getWindowHandle 方法存储焦点弹出窗口的窗口句柄。

Python中Selenium webdriver中的click方法可以点击一个按钮。首先,我们必须使用 id、name、class、xpath、tagname 或 CSS 等定位器定位要单击的按钮。然后必须对其应用点击技术。 HTML 代码中的按钮标记名代表一个按钮。

它是一个 Web 自动化框架,可以让我们在许多浏览器上运行测试。它可以跨多个浏览器和操作系统运行多个测试。使用 WebDriver,您可以在 Linux 中编写测试脚本并在 Windows 上运行它。

无论用于编写代码的编程语言如何,“异常”都是软件程序员使用的标准术语。顾名思义,“异常”是异常事件或扰乱程序执行正常流程的罕见情况。

Selenium Script 为每个 selenium 命令生成一个 HTTP 请求并将其发送到浏览器驱动程序。浏览器驱动程序然后向服务器发送 HTTP 请求。

Python中Selenium webdriver中的click方法可以用来点击图片。首先,我们必须使用任何可用的定位器来识别图片,例如 id、class、name、CSS、XPath 等等。 img 标记名表示 HTML 代码中的图片。让我们看一下图像元素的 HTML 代码。

sendKeys(Keys.TAB);这将输入要传递的字符串,然后按“Tab”按钮。

只需使用 Selenium 中的 close() 方法即可关闭浏览器。

调用驱动程序的 webdriver 命令是 quit()。 discard 关闭所有浏览器窗口并终止 WebDriver。

  • 先关闭火狐浏览器。 
  • 在“运行”(Windows 键 + R)中键入 firefox.exe –p。
  • 选择用户个人资料 
  • 做个人资料; 
  • 给它起个名字。

在 Selenium webdriver 中,我们可能会得到一个元素的属性。在 HTML 文档中,getAttribute() 方法用于获取属性的值。属性及其值在 HTML 代码中显示为键值对。 Disabled、alt、id、href、style、title 和 src 是最著名的 HTML 属性。

Selenium webdriver 中的 SessionId 类可以用来获取 webdriver session id。会话 ID 是服务器分配给 webdriver 的唯一编号。 webdriver 使用此号码与浏览器建立连接。

  • 从 Chromium.org 下载页面下载最新的 ChromeDriver 二进制文件并将其保存在本地。
  • 使用 System.setProperty(“webdriver.chrome.driver”, “chromeDriver.exe path”) 将 webdriver.chrome.driver 属性设置为 chromeDriver.exe 的地址。

必须调用“execute script”方法,然后执行window。 javascript 打开('关于:空白','secondtab')。然后我们必须切换到该选项卡并为该选项卡提供任何有效的 URL。

dragAndDrop() 方法最初在源元素的位置执行单击并按住操作。移动鼠标操作:然后将源元素重新定位到目标元素的位置。按钮释放:最后释放鼠标。

在 Selenium webdriver 中,我们可以使用 TestNG 测试套件执行大量测试用例。要同时运行多个测试用例,我们必须在 TestNG 中启用并行执行。 TestNG xml 文件指导 TestNG 的执行。 parallel 和 thread count 属性必须用于触发并行执行。

  • 通过单击文件上传/选择文件按钮打开文件上传/选择文件对话框。
  • 将文件的绝对路径复制到剪贴板。
  • 在文件上传对话框中,将文件的绝对路径粘贴到文件名区域。

虽然下载和安装 Selenium 是免费的,但它也不是完全免费的。 Selenium 有很多隐性成本,这些成本会迅速增加。考虑工具的总拥有成本是多少。将该工具添加到您的构建过程中通常需要付出多年的代价。

无头浏览器是没有用户界面的浏览器模拟器。性能是采用无头浏览器的主要优势之一。无头浏览器比传统浏览器更快,因为它们没有图形用户界面。 Selenium 中的 HtmlUnitDriver 允许无头浏览器测试。

Implicit Wait 指令告诉 Selenium WebDriver 在抛出异常之前等待一段设定的时间。 WebDriver 将在设置此时间后等待元素,然后再抛出异常。隐式等待在浏览器被激活后的持续时间内保持不变。

Selenium WebDriver API 允许浏览器和浏览器驱动程序进行通信。 Selenium 客户端库、JSON Wire 协议、浏览器驱动程序和浏览器是该架构的四层。 Selenium 客户端库包括 Java、Ruby、Python、C# 等语言。

WebdriverIO 是一个用 JavaScript 编写的基于 NodeJS 的开源测试自动化框架。它对于在 iOS 设备上测试在线和本机移动应用程序特别有效。

2004 年:推出 Selenium

要获取适用于 Selenium 的最新版本的 Chrome 驱动程序,请按照以下步骤操作。

  • 转到 https://sites.google.com/chromium.org/driver/ 并打开 ChromeDriver 页面。此页面包含有关最新 ChromeDriver 测试版和稳定版的信息。 
  • 选择下载选项。单击正确的 ChromeDriver 版本 
  • 基于您在 PC 上安装的 Chrome 浏览器版本。要获取适用于 Windows 的 ChromeDriver,请转到 chrome 驱动程序 win32.zip。
  • 下载zip文件后,解压得到chromedriver.exe程序。

在深入研究 Selenium WebDriver 测试自动化之前要记住的最重要的事情是您应该熟悉一种编程语言。这些语言中的任何一种都可以学习。如果您使用 Java、C#、Ruby、Python 或 Javascript,这没有区别。

Selenium 中的 Actions 类允许我们双击项目。我们将首先使用 moveToElement() 函数,然后使用 doubleClick() 方法来完成双击操作。最后构造()。 perform() 将执行所有步骤。

SoftAssert 可用于使用单个@Test 注释来验证表单的所有必要字段。当我们最后运行 assertAll() 时,即使任何断言失败,它也会执行下一行并给我们所有在@Test 中捕获的异常。