Ruby+Selenium教程

什么是 Minitest?

Minitest 是 Ruby 的测试框架,提供一整套测试工具。它运行速度快,支持 TDD、BDD、模拟和基准测试

以下是使用Ruby、Selenium WebDriver和Minitest 的脚本,用于断言 Restful Booker Platform 的"页面标题"等于"Restful-booker-platform demo"

打开Rubymine新建项目

打开终端输入如下命令安装库

bash 复制代码
gem install selenium-webdriver
gem install webdrivers
gem install minitest

新建test_page_title.rb文件

ruby 复制代码
require 'rubygems'
require "selenium-webdriver"
require 'minitest/autorun'

class Test < Minitest::Test
  def test_page_title
    driver = Selenium::WebDriver.for :chrome
    driver.manage.window.maximize
    driver.navigate.to "https://automationintesting.online/#/admin"
    wait = Selenium::WebDriver::Wait.new(timeout: 20)
    button = wait.until {
      element = driver.find_element(:xpath, "//button[text()='Let me hack!']")
      element if element.displayed?
    }
    button.click
    input = wait.until {
      element = driver.find_element(:id, "username")
      element if element.displayed?
    }
    input.send_keys("admin")
    input = wait.until {
      element = driver.find_element(:id, "password")
      element if element.displayed?
    }
    input.send_keys("password")
    button = wait.until {
      element = driver.find_element(:id, "doLogin")
      element if element.displayed?
    }
    button.click
    assert_equal(driver.title, "Restful-booker-platform demo")
    driver.quit
  end
end

新建test_baidu.rb文件

ruby 复制代码
require 'minitest/autorun'
require 'selenium-webdriver'

class BaiduTest < MiniTest::Test
  def setup
    @browser = Selenium::WebDriver.for :chrome
    @browser.manage.timeouts.implicit_wait = 20
  end

  def test_baidu
    @browser.navigate.to "https://www.baidu.com"
    @search_box = @browser.find_element(:id, "kw")
    @search_box.send_keys("selenium")
    @search_box.submit
    @search_button = @browser.find_element(:id, "su")
    @search_button.click
    assert(@browser.title.eql? "百度一下,你就知道")
  end

  def teardown
    @browser.close
  end
end

运行测试

打开终端输入

bash 复制代码
ruby test_page_title.rb
ruby test_baidu.rb
相关推荐
椰椰椰耶1 天前
【RabbitMQ】工作队列和发布/订阅模式的具体实现
分布式·rabbitmq·ruby
极小狐2 天前
如何构建容器镜像并将其推送到极狐GitLab容器镜像库?
开发语言·数据库·机器学习·gitlab·ruby
努力也学不会java3 天前
【RabbitMQ】 RabbitMQ高级特性(一)
分布式·rabbitmq·ruby
jay5 天前
Zabbix监控 RabbitMQ 指定消息队列名称(pull_alarms )的消费者
rabbitmq·zabbix·ruby
极小狐6 天前
如何使用极狐GitLab 软件包仓库功能托管 ruby?
开发语言·数据库·人工智能·git·机器学习·gitlab·ruby
玄武后端技术栈7 天前
RabbitMQ如何保证消息不丢失?
分布式·rabbitmq·ruby
Themberfue8 天前
RabbitMQ ①-MQ | Linux安装RabbitMQ | 快速上手
linux·运维·分布式·rabbitmq·ruby·mq·高性能
小威编程8 天前
RabbitMQ 添加新用户和配置权限
开发语言·后端·rabbitmq·ruby
浪前10 天前
【项目篇之统一内存操作】仿照RabbitMQ模拟实现消息队列
java·分布式·rabbitmq·ruby
努力也学不会java10 天前
【RabbitMQ】 RabbitMQ快速上手
分布式·后端·中间件·rabbitmq·ruby