打个响指Selenium自动化开启

发表于:2019-2-25 12:37

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:漏斗社区    来源:freebuf

  最近我在做测试朋友的影响下,接触了自动化测试工具。其中一个项目appium自动化测试脚本。
  appium类库封装了标准Selenium客户端类库,为用户提供所有常见的JSON格式selenium命令以及额外的移动设备控制相关的命令,所以在讲appium类前先了解下Selenium自动化测试的使用。
  其实功能测试自动化跟爬虫一样 ,都是要进行元素定位与操作,所以Selenium可以用来爬取数据。
  0×00 Selenium简述
  Selenium 是一个用于Web应用程序测试的工具。提供了一系列简单的API,让我们使用Selenium WebDriver调用 WebDriver的所有功能,Selenium可以直接操作浏览器,就像真正的用户在操作一样。
  0×01 Selenium 环境准备
  一、语言选择
  Selenium 支持多种语言开发,如Java、PythonRuby、PHP、C#、JavaScript等斗哥这里选择Pythonpython官网(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/webdriverSafari:https://webkit.org/blog/6900/webdriver-support-in-safari-10以Chrome为例,下载时都是32位的驱动这个不用在意,下载对应的Chrome版本就行。
  
  下载完,将这个exe的路径加入环境变量, 就可以根据驱动连接浏览器。
  
  新手推荐火狐浏览器,不需要驱动
  三、 Selenium安装
  windows的python安装包已经集成了pip可以直接使用命令:pip install selenium下载是指定版本为3.14.1。
  
  0×03 Selenium 快速入门
   # -*-coding:utf-8-*-
  from selenium import webdriver
  driver=webdriver.Firefox()
  # 打开火狐浏览器空白窗体
  driver.get('https://www.baidu.com')
  # 启动浏览器并且导航到指定URL
  driver.close()
  # 关闭浏览器
  此时已经控制浏览器,并且自动访问百度
  
  0×04 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')
  0×05 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”然后回车。
  
  0×06 小小总结
  这期主要简述Selenium的环境配置,与浏览器交互,定位元素,对元素进行操作。

     上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号