当前位置: 首页 > article >正文

Ruby+Selenium教程

什么是 Minitest?

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

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

打开Rubymine新建项目

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

gem install selenium-webdriver
gem install webdrivers
gem install minitest

新建test_page_title.rb文件

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文件

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

运行测试

打开终端输入

ruby test_page_title.rb
ruby test_baidu.rb


http://www.kler.cn/a/450478.html

相关文章:

  • Linux 常见用例汇总
  • Java代码覆盖率super-jacoco
  • CNN和Transfomer介绍
  • 递归查询全量分页数据问题
  • Gin-vue-admin(1):环境配置和安装
  • 本地摄像头视频流在html中打开
  • 今天最新早上好问候语精选大全,每天问候,相互牵挂,彼此祝福
  • 预约参观华为基地,见证行业巅峰
  • Jmeter分布式压力测试
  • 7-4 字符串的冒泡排序
  • VMware vCenter保姆级安装部署(VMware VCenter Nanny Level Installation and Deployment)
  • Mac的M2芯片运行lightgbm报错,其他python包可用,x86_x64架构运行
  • 如何绘制网络拓扑图?附详细分类解说和用户案例!
  • 中间件xxl-job安装
  • JSON 系列之1:将 JSON 数据存储在 Oracle 数据库中
  • llama.cpp:PC端测试 MobileVLM -- 电脑端部署图生文大模型
  • 电商系统-产品经理
  • 【动手学轨迹预测】2.3 场景表征方法
  • 网页生成鸿蒙App
  • 深入解读数据资产化实践指南(2024年)
  • 工具学习_firmware mod kit
  • Git远程仓库的多人协作
  • msvcp140.dll丢失问题汇总,有效解决msvcp140.dll错误问题
  • 大数据之——(分布式集群式) VWare、Ubuntu、CentOs、Hadoop安装配置
  • 饮酒会给心脏带来哪些改变?
  • windows11家庭版安装docker无法识别基于wsl2的Ubuntu