博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ruby之selenium自动化 or ruby爬虫利器-selenium
阅读量:5935 次
发布时间:2019-06-19

本文共 2685 字,大约阅读时间需要 8 分钟。

 

selenium是什么?自动化测试工具,他支持各种浏览器,chrome,firefox等,我们可以在这些浏览器里面安装插件,可以方便的进行web测试,也可以通过代码操作,直接对web界面进行测试。

selenium支持多种语言开发java、python、ruby、c#、js、php等。这边,我用的是ruby+selenium,通过简单的描述,对selenium也有了大概的认识,让我们实际操作一下。我介绍的比较基础,cookie,验证码处理,邮箱验证等这些,先不作详细介绍!基础这边我会比较详细的介绍!

 

开发环境:ruby安装在centos虚拟机上,因为win不太适合做ruby开发

     ruby安装结束后,在安装se(selenium简称se) 

     主机是win10

 

first:我们安装虚拟机centos后,先安装ruby,ruby的安装步骤就不说了,ruby安装结束后,安装selenium

gem install selenium-webdriver

这里,se就安装好啦,然后呢因为我一般启动win10上的chrome,不起动虚拟机的,虚拟机比较卡,所以我在win10上安装java包,和Chromedriver,可以去https://www.seleniumhq.org/download/这里下载

我这边已经安装好了,然后我们win+r进入这个目录,输入以下命令,就相当于把selenium的服务器开起来了。

 

second:我们就进行一些简单的网页操作,用ruby+selenium来操作

在虚拟机下,敲入下面三条,你就会发现selenium控制chrome打开了浏览器窗口

第一条命令我们要使用这个包,第二条命令我们是要启动chrome浏览器,第三条,我们要启动的是我本地win10的chrome浏览器,这个ip地址就是win10的ip地址,selenium的端口号就是4444

require "selenium-webdriver"caps = Selenium::WebDriver::Remote::Capabilities.chromedriver = Selenium::WebDriver.for :remote, url: 'http://192.168.16.139:4444/wd/hub', desired_capabilities: caps

 

先随便打开一个网址,比如打开google

driver.get "https://www.google.com"

 

 (1)向搜索栏输入hello,下面是搜索栏的位置

我们可以这样子获取这个元素,提供(xpath,css获取元素)

xpath:element1 = driver.find_element(:xpath,"//*[@id=\"lst-ib\"]")element1.send_keys("hello")css:element2 = driver.find_element("css","input#lst-ib")element1.send_keys("hello")

 

(2)点击提交按钮

driver.find_element(:xpath,"//*[@id=\"tsf\"]/div[2]/div[3]/center/input[1]").click

 

(3)清楚搜索栏的元素

driver.find_element("css","input#lst-ib").clear()

 

(4)想获取全网站的内容

content = driver.find_element(:xpath,"//html").attribute("outerHTML") or content = driver.page_source

 

(5)页面切换,如果切换后一个此时,windowName 就是last,再切回来就是first

driver.switch_to_window("windowName")

  

(6)浏览器的前进和后退,获取当前的url

driver.navigate.forwarddriver.navigate.back driver.current_url

 

(7)最大化浏览器,以及设置浏览器的长宽

driver.manage.window.maximizedriver.manage.window.resize_to(600,400)

  

(8)定位一组,多个元素的定位就在find_element后面加s,举一个简单的例子

一个网页一双鞋子,可能有多个size,我们先随机选择一个,size是总的,下面写伪代码size = driver.find_elements(:xpath,"鞋子的select的位置")size[rand(size.length-1)].click

 

(9)设置代理和cookie登入

caps = Selenium::WebDriver::Remote::Capabilities.chrome( "@capbalities" => {"proxy"=>proxy,"cookie"=>cookie} ) driver = Selenium::WebDriver.for :remote, url: 'http://192.168.16.139:4444/wd/hub', desired_capabilities: caps

 

(10)关闭浏览器

driver.quit

 

(11)将鼠标移向指定位置,有时候有些按钮不可以点击的,你要移动在这个元素的位置上,一直保持着,才会加载出别的东西来,

driver.action.move_to("元素位置").perform

  

先介绍到这里,至于cookie保存和导入,有时候注册页面主要发送认证邮箱,就是认证地址的点击,还有一些验证码的处理,这边就不做介绍了。

其实selenium是一个很好玩的东西,我曾经拿这个去注册一些平台,发表博客--自动注册和自动登入然后在发表博客。以上说的比较简单,但是简单的过程大家可以先体会,但是我测试的复杂的网站都包含以上部分,以上部分需要大家去专研,因为三言两语说不清。

目前我拿selenium来做自动化测试+爬虫,觉得还是蛮好玩的,慢慢挖掘中!

 

 

这个文档还是不错的,很详细介绍:https://www.seleniumhq.org

  

 

转载于:https://www.cnblogs.com/zhe-hello/p/9679357.html

你可能感兴趣的文章
bash命令行快捷键整理
查看>>
Zabbix3.2.6之通过JMX监控Tomcat
查看>>
2013美赛建模算法关键词
查看>>
Android-Parcelable理解与使用(对象序列化)
查看>>
数据结构----图(邻接表用法)
查看>>
批量扫描雏形之在Java中调用nmap进行主机探测
查看>>
我的友情链接
查看>>
SVN命令详解
查看>>
Windows的资源监视器
查看>>
Android图形解锁的绘制
查看>>
UML基础系列:类图
查看>>
学习日志---树回归(回归树,模型树)
查看>>
Gene6_FTP_Server_高级配置
查看>>
centos 7编译安装nginx
查看>>
【学神】1-15 linux启动及常见故障的排除
查看>>
Android SDK 在线更新镜像服务器资源
查看>>
重新定义工作站的“边界”
查看>>
第三方推送已死
查看>>
回档|神经网络
查看>>
Apache Spark源码走读之12 -- Hive on Spark运行环境搭建
查看>>