打个响指Selenium自动化开启

最近斗哥在朋友的影响下,接触了自动化测试工具中的一个项目:appium自动化测试脚本。

appium类库封装了标准Selenium客户端类库,为用户提供所有常见的JSON格式selenium命令以及额外的移动设备控制相关的命令,所以在讲appium类前先了解下Selenium自动化测试的使用。

其实功能测试自动化跟爬虫一样 ,都是要进行元素定位与操作,所以Selenium可以用来爬取数据。

0x00 Selenium简述

Selenium 是一个用于Web应用程序测试的工具。提供了一系列简单的API,让我们使用Selenium WebDriver调用 WebDriver的所有功能,Selenium可以直接操作浏览器,就像真正的用户在操作一样。

0x01 Selenium 环境准备

一、语言选择

Selenium 支持多种语言开发,如Java、Python、Ruby、PHP、C#、JavaScript等。 斗哥这里选择Python。 python官网(https://www.python.org/)下载对应系统安装包,python2版本与python3版本都支持Selenium 安装步骤斗哥这里就不介绍,安装完成后在终端输入python看到python的安装的版本信息。则安装成功(未发现命令可能要手动添加安装位置的环境变量)。

二、浏览器选择

Selenium支持与多种浏览器交互,如Chrome、Firefox、Edge、Safari等 除了火狐浏览器原生支持以外,Selenium 要通过浏览器驱动来与浏览器交互。 Chrome: https://sites.google.com/a/chromium.org/chromedriver/downloads 下载Chrome驱动需要梯子,无法下载可以在下方留言浏览器驱动 Edge: https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver Safari: https://webkit.org/blog/6900/webdriver-support-in-safari-10 以Chrome为例,下载时都是32位的驱动这个不用在意,下载对应的Chrome版本就行。

下载完,将这个exe的路径加入环境变量, 就可以根据驱动连接浏览器。

新手推荐火狐浏览器,不需要驱动。

三、 Selenium安装

windows的python安装包已经集成了pip可以直接使用 命令:pip install selenium 下载时指定版本为3.14.1。

0x03 Selenium 快速入门

# -*-coding:utf-8-*-
from selenium import webdriver
driver=webdriver.Firefox()
# 打开火狐浏览器空白窗体
driver.get('https://www.baidu.com')
# 启动浏览器并且导航到指定URL
driver.close()
# 关闭浏览器

此时已经控制浏览器,并且自动访问百度。

0x04 Selenium 元素定位

当我们要访问页面某个功能,某个标签,就需要在界面找到这些元素。selenium中有一系列以find_开头的方法,都是用于元素定位。

通过id定位元素:
 find_element_by_id(self, id_) 
 find_elements_by_id(self, id_)  返回list
通过class定位元素:
 find_element_by_class_name(self, name) 
 find_elements_by_class_name(self, name)  返回list
通过name属性定位元素:
 find_element_by_name(self, name) 
 find_elements_by_name(self, name)  返回list
通过标签名定位元素:
 find_element_by_tag_name(self, name) 
 find_elements_by_tag_name(self, name)  返回list
通过链接文本定位元素:
 find_element_by_link_text(self, link_text) 完全匹配
 find_element_by_partial_link_text(self, link_text) 部分匹配
 通过xpath定位元素:
 find_element_by_xpath(self, xpath) 
 find_elements_by_xpath(self, xpath) 返回list
通过css选择器定位元素:
 find_element_by_css_selector(self, css_selector) 
 find_elements_by_css_selector(self, css_selector) 返回list

先使用浏览器的开发者模式,或者用Firebug等插件,确定元素位置属性,再用脚本实现。 确定了百度的输入框位置。

就可以用方法对定位元素的位置。如:driver.find_element_by_id('kw')

0x05 Selenium 元素操作

定位完就可以对元素做操作,鼠标点击,输入文本。

clear(self)  清除文本输入框
 click(self)  点击元素
 submit(self)  提交表单
 send_keys(self, *value)  发送信息
from selenium import webdriver
import time
from selenium.webdriver.common.keys import Keys
driver=webdriver.Firefox()
driver.get('https://www.baidu.com')
driver.find_element_by_id('kw').send_keys('python')
#输入
driver.find_element_by_id('kw').send_keys(Keys.ENTER)
#回车

如果运行正常,将会自动执行以下操作:打开一个火狐浏览器,然后打开百度首页,在输入框中输入“python”然后回车。

0x06 小小总结

本期的内容就介绍到这里啦!下期将带来appium测试工具的使用,以及appium测试微信小程序的相关介绍。不见不散~!

原文发布于微信公众号 - 漏斗社区(newdooneSec)

原文发表时间:2018-11-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏互联网杂技

把图片变成字体,然后在引入到网页

首先是字体:如果把想要的字体引入到网页。 第一步:下载字体文件,一般下载到的是.TTF文件,只有一个文件。 第二步:把下载的字体,转换为其他格式,一般为了解决...

3668
来自专栏用户2442861的专栏

Chrome开发者工具不完全指南(一、基础功能篇)

http://www.cnblogs.com/constantince/p/4565261.html

832
来自专栏散尽浮华

Linux终端复用神器-Tmux使用梳理

Tmux是一个优秀的终端复用软件,类似GNU Screen,但来自于OpenBSD,采用BSD授权。使用它最直观的好处就是,通过一个终端登录远程主机并运行tmu...

21510
来自专栏MelonTeam专栏

Password Auto Fill

前言 在 WWDC 17 Session 206 中,介绍了这个 iOS 11 加入的新功能。尽管这个功能特别简单,但几乎是今年所有发布的新功能中我最喜欢的一...

2136
来自专栏极乐技术社区

微信小程序开发小技巧合揖(53个)

微信小程序:wx.navigateTo中url无法跳转问:链接 微信小程序布局之行内元素和块级元素:链接 小程序端JS加密,传输PHP端解密:链接 小程序开发干...

4329
来自专栏地方网络工作室的专栏

打造前端 Deepin Linux 工作环境——系统更新以及配置字体

打造前端 Deepin Linux 工作环境——系统更新以及配置字体 安装好编辑器,然后就准备码代码了,但是感觉字体不是很好看。所以决定配置一下字体。顺便把系统...

4106
来自专栏GuZhenYin

[EasyUI美化换肤]更换EasyUi图标

前言 本篇文章主要是记录一些换EasyUI皮肤的过程,备忘.也欢迎美工大神各路UI给点好意见,EasyUI我就不介绍了,自行百度吧..(So..所以别问我是不是...

5338
来自专栏州的先生

在Python爬虫中将PhantomJS伪装成Chrome浏览器

1924
来自专栏Jerry的SAP技术分享

如何从ERP下载Sales BOM到CRM

BOM的抬头维护material 1419,在BOM的component部分维护另外两个material 1421和1422。

3507
来自专栏无所事事者爱嘲笑

vue中的v-cloak

2049

扫码关注云+社区

领取腾讯云代金券