??以下是本教程的主题:
- 什么是 Selenium Webdriverli>
- Selenium 容易学吗li>
- Selenium 软件有什么作用li>
- Selenium 的基本知识是什么li>
- Selenium RC 的缺点和 WebDriver 的诞生
- 什么是浏览器元素li>
- 定位 页上的浏览器元素
- 浏览器元素上的操作
什么是 Selenium WebDriverh1>
??Selenium WebDriver 是一个基于 Web 的自动化测试框架,可以测试在各种Web浏览器和各种操作系统上启动的 页。实际上,您还可以自由使用各种编程语言(例如Java、Perl、Python、Ruby、C#、PHP 和 JavaScript)编写测试脚本。请注意,Mozilla Firefox 是 Selenium WebDriver 的默认浏览器。
??但是很多时候,刚入门的测试人员会想到这个疑问:
Selenium 好学吗h1>
??要用外行的话回答这个问题,我会说:”是的,是!”。Selenium 真的很容易学习和掌握,因为您只需要对任意一种常见的编程语言(例如 Java、C#、Python、Perl、Ruby、PHP)有基本的了解。预先掌握这些编程语言中的任何一种的都可有助于编写测试用例。但是,如果您没有,那就不要担心了。Selenium IDE 是一个可以有效使用的基于 GUI 的工具。
Selenium 软件有什么作用h1>
??以下是 Selenium 软件最吸引人的一些用途:
- **自动化测试:**在大型项目中,自动化测试会派上用场,在大型项目中,如果不是 Selenium,测试人员将必须手动测试每个创建的功能。使用 Selenium,所有手动任务都可以自动化,从而减轻了测试人员的负担和压力。
- **跨浏览器兼容性:**Selenium 支持多种浏览器,例如:Chrome、Mozilla Firefox、Internet Explorer、Safari 和 Opera。
- **提高测试覆盖率:**通过自动化的测试,可以减少总体测试时间,从而为测试人员腾出时间来同时在不同的测试场景下执行更多测试。
- **减少测试执行时间:**由于 Selenium 支持并行测试执行,因此可以大大减少并行测试执行时间。
- **多操作系统支持:**Selenium WebDriver 提供跨 Windows、Linux、UNIX、Mac 等多种操作系统的支持。使用 Selenium WebDriver,您可以在 Windows 操作系统上创建测试用例并在 Mac 操作系统上执行。
Selenium 的基本知识是什么h1>
??WebDriver 是 Selenium v2.0 的一部分。Selenium v1 仅由 IDE,RC 和 Grid 组成。但是 Selenium 项目的主要突破是开发 WebDriver 并将其作为 Selenium v2 的替代产品引入。但是,随着 Selenium v3 的发布,不推荐使用 RC,而将其迁移到旧版软件包中。 您仍然可以下载并使用 RC,但不要期望对其提供任何支持。
??简而言之,WebDriver相对于 RC 的优势是:
- 支持更多的编程语言、操作系统和 Web 浏览器
- 克服 Selenium 1 的局限性,例如文件上传、下载、弹出窗口和对话障碍
- 与 RC 相比,命令更简单,API 更好
- 支持批量测试,跨浏览器测试和数据驱动的测试
??但是,与 RC 相比,缺点是无法生成测试 告。RC 生成详细的 告。
??下图描述了 WebDriver 的工作方式:
??为了克服这些问题,开发了 Selenium WebDriver。WebDriver更快,因为它直接与浏览器交互,并且不需要外部代理服务器。由于从操作系统级别控制浏览器,因此架构也更简单。下图将帮助您了解 WebDriver 的工作方式。
??如果您检查(Ctlr + Shift + i)此页面,则将在浏览器中看到相同的窗口。然后,在“元素”下,将显示页面上存在的所有元素及其属性的列表。上面的屏幕快照中突出显示了三个部分。第一个突出显示的元素是电子邮件文本字段,第二个是密码文本字段,第三个是“登录”按钮。
??如果您还记得,我在前面提到过可以使用元素定位器技术来定位这些元素。 让我们用它来定位这些元素并发送字段值。
??这是查找元素的语法:driver.findElement(By.id(“xxx”));
为了发送它的值,我们可以使用方法 sendKeys(“credentials“);
要单击按钮,我们必须使用 click();
??那么,让我们开始寻找元素并对其进行操作。其代码在下面的代码片段中。
??在第 1 行中,我们通过其唯一的“名称”属性来标识 Email 元素,并将其发送给 EmailID。
??在第 2 行中,我们通过其唯一的“名称”属性来标识 Password 元素,并将其发送给密码。
??在第 3 行中,我们通过其唯一 ID 找到“登录”按钮元素,然后单击该按钮。
??仅添加这些代码行可能还不够。那是因为页面的动态,它可能不会立即响应,并且在页面加载时,WebDriver 将终止并引发超时异常错误。此问题可能很快就不会在 Facebook 页面上发生,但很可能会在其他任何电子商务 站和其他动态 站上发生。
??为了克服这个问题,我们需要使用一种先进的技术。我们需要请求我们的 WebDriver 在页面被访问并且页面完全加载之后等待,我们需要找到元素然后执行操作。
如果你想让你的 WebDriver 等待,直到所有元素加载到 页中,然后关闭浏览器,那么我们可以使用 driver.wait() 方法或 Threads.sleep() 方法来实现。但是,如果您正在编写更高级的代码,那么您应该使用隐式等待或显式等待。但是对于我们的情况,下面的命令就足够了。
??但是,在使用等待条件时,请记住导入该库:
??我们这样做是因为,等待类及其相关方法将出现在此库中。
??下面是我所解释代码的完整代码片段。
??当您用实际的电子邮件和密码替换凭据并执行此代码时,Facebook 将在新窗口中打开,输入您的凭据并登录到您的帐户。
??瞧! 您已成功登录,这意味着您的完整代码已完全执行。
??我使用了 ID 和 Name 属性来定位元素。实际上,您可以使用任何其他定位器来查找元素。XPath 是最有用和最重要的定位器技术。但是,只要您甚至可以找到其中一个属性并将其用于定位元素,就可以了。
文章知识点与官方知识档案匹配,可进一步学习相关知识云原生入门技能树首页概览8856 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!