用户
搜索
  • TA的每日心情
    开心
    2018-9-11 11:32
  • 签到天数: 7 天

    连续签到: 1 天

    [LV.3]经常看看I

    i春秋-核心白帽

    Rank: 4

    96

    主题

    123

    帖子

    1400

    魔法币
    收听
    0
    粉丝
    28
    注册时间
    2016-6-6
    发表于 2018-12-4 16:00:07 532291

    最近斗哥在朋友的影响下,接触了自动化测试工具中的一个项目: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的安装的版本信息。则安装成功(未发现命令可能要手动添加安装位置的环境变量)。

    变量.webp.jpg

    二、浏览器选择

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

    就行.webp.jpg

    22.webp.jpg

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

    浏览器.webp.jpg

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

    三、 Selenium安装

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

    131.webp.jpg

    0x03 Selenium 快速入门

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


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

    百度.webp.jpg


    0x04 Selenium 元素定位

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

    [Python] 纯文本查看 复制代码
    通过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等插件,确定元素位置属性,再用脚本实现。
    确定了百度的输入框位置。

    位置.webp.jpg


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

    0x05 Selenium 元素操作

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

    [Python] 纯文本查看 复制代码
    clear(self)  清除文本输入框
    
    click(self)  点击元素
    
    submit(self)  提交表单
    
    send_keys(self, *value)  发送信息


    [Python] 纯文本查看 复制代码
    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”然后回车。

    回车.gif


    0x06 小小总结

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

    qrcode_for_gh_223e082fe8a7_344.jpg

    感觉想学自动化,推荐上海悠悠老师的,简单明了
    使用道具 举报 回复
    感谢分享
    使用道具 举报 回复
    百夜弥畏子 发表于 2018-12-5 11:45
    感觉想学自动化,推荐上海悠悠老师的,简单明了

    靠谱吗?你学了嘛?
    使用道具 举报 回复
    魔鬼筋肉人 发表于 2018-12-5 13:52
    靠谱吗?你学了嘛?

    学了,还可以,基本操作都没问题了。应该算初级了把
    使用道具 举报 回复
    弹个响指 666
    使用道具 举报 回复
    发新帖
    您需要登录后才可以回帖 登录 | 立即注册