Selenium 简明教程
Selenium with Ruby Tutorial
Selenium 可以使用多种语言,比如 Java、Python、Kotlin、JavaScript、Ruby 等等。Selenium 被广泛用于 web 自动化测试。Selenium 是一个开源且可移植的自动化软件测试工具,用于测试 Web 应用程序。它具有跨不同浏览器和操作系统运行的能力。Selenium 不仅是一个单一的工具,而是一套工具,可帮助测试人员更有效地自动化基于 Web 的应用程序。
从 Selenium 4 版本开始,整个架构可以完全兼容 W3C - 世界联盟,这意味着 Selenium 4 遵循 W3C 给出的全部标准和指南。
How to Setup Selenium With Ruby?
Step 1 - 使用以下链接下载并安装本地系统中的 Ruby -
通过运行以下命令来确认已安装的 Ruby 版本 -
ruby -v
执行的命令的输出将表示系统中安装的 Ruby 版本。
Step 2 - 从以下链接下载并安装 Ruby 代码编辑器 RubyMine 以编写并运行 Selenium 测试 -
Step 3 - 启动 RubyMine 并点击新建项目按钮。
Step 4 - 输入项目名称(比如 SeleniumTest),选择 Ruby 解释器,然后点击创建按钮。
Step 5 - 右键点击 SeleniumTest 项目,点击新建选项,然后点击文件选项。
Step 6 - 输入文件名(比如 FirstTest.rb)作为新建文件名称,然后按 Enter。
Step 7 - 通过在 FirstTest.rb 文件中添加以下代码片段来确认 Ruby 解释器是否正确配置 -
puts 'Tutorialspoint'
Step 8 - 通过右键点击并选择运行 FirstTest 的选项来运行代码。
它将显示以下输出 −
Tutorialspoint
Process finished with exit code 0
在以上示例中,消息 - Tutorialspoint 被捕获到控制台中并收到了消息 Process finished with exit code 0 ,表示代码执行成功。
Step 9 - 为了安装 Selenium,从终端运行以下命令 -
gem install selenium-webdriver
Step 10 - 在 FirstTest.rb 文件中添加以下代码。
require 'selenium-webdriver'
# Initiate Webdriver
driver = Selenium::WebDriver.for :edge
# adding implicit wait of 15 seconds
driver.manage.timeouts.implicit_wait = 15
# launch an application
driver.get 'https://www.tutorialspoint.com/selenium/practice/text-box.php'
# get page title
puts 'Page Title: ' + driver.title
它将显示以下输出 −
Page title: Selenium Practice - Text Box
Process finished with exit code 0
在以上示例中,我们首先启动 Edge 浏览器并打开一个应用程序,然后检索浏览器标题,并在控制台中显示消息 - Page title: Selenium Practice - Text Box 。与此同时,Chrome 浏览器启动,在顶部显示消息 Edge is being controlled by automated test software 。
最后,收到了消息 Process finished with exit code 0 ,表示代码成功执行。
Launch a Browser and Quit a Driver With Selenium Ruby
我们可以使用 get 方法启动浏览器并打开应用程序,最后使用 quit 方法退出浏览器。
Code Implementation
require 'selenium-webdriver'
# Initiate Webdriver
driver = Selenium::WebDriver.for :edge
# adding implicit wait of 15 seconds
driver.manage.timeouts.implicit_wait = 15
# launch an application
driver.get 'https://www.tutorialspoint.com/selenium/practice/selenium_automation_practice.php'
# get page title
puts 'Browser title after launch: ' + driver.title
# close browser
driver.quit
它将显示以下输出 −
Browser title after launch: Selenium Practice - Student Registration Form
Process finished with exit code 0
在以上示例中,我们首先启动 Edge 浏览器,然后检索浏览器标题,最后退出浏览器,并在控制台中收到消息 - Browser title after launch: Selenium Practice - Student Registration Form 。
最后,收到了消息 Process finished with exit code 0 ,表示代码成功执行。
Identify An Element and Check Its Functionality using Selenium Ruby
一旦我们导航到某个网页,我们必须与该页面中可用的 web 元素进行交互,比如点击链接/按钮、在编辑框中输入文本等,以完成我们的自动化测试用例。
为此,我们的第一任务应该是识别元素。我们可以将链接文本用于链接以进行其识别并利用方法 find_element(name: '<value of name attributes>')。通过此项操作,应返回与名称属性匹配值匹配的第一个元素。
如果不存在与名称属性匹配值匹配的元素,则应引发 NoSuchElementException。
让我们查看下图中编辑框的 html 代码 −
<input id="fullname" name="fullname" type="text" class="form-control" placeholder="Full Name">
上图中高亮显示在 FullName: 标签旁边的编辑框具有名称属性,其值为 fullname 。让我们在对其进行识别后向此编辑框中输入文本 Selenium 。最后,我们将退出浏览器。
Code Implementation
require 'selenium-webdriver'
# Initiate Webdriver
driver = Selenium::WebDriver.for :edge
# adding implicit wait of 15 seconds
driver.manage.timeouts.implicit_wait = 15
# launch an application
driver.get'https://www.tutorialspoint.com/selenium/practice/text-box.php'
# identify element then enter text
name = driver.find_element(:name ,'fullname')
name.send_keys("Selenium")
# close browser
driver.quit
在上面的示例中,我们首先启动 Edge 浏览器并打开了一个应用程序,然后在输入框中输入文本 Selenium。
最后,收到了消息 Process finished with exit code 0 ,表示代码成功执行。