本篇写怎么写一个UI自动化代码。mac和Windows是一样的 都是这样写 不过,习惯用Windows了
如果python没有安装可以看我另一篇安装python的教程 先安装python先
下载完python 下载pip
1 安装pip
$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py # 下载安装脚本
$ sudo python get-pip.py # 运行安装脚本
首先下载安装对应的库及浏览器驱动
1python环境下安装selenium
终端输入:pip install selenium
检查selenium是否安装成功:pip lis 或者pip show selenium
2若想使 Selenium 能够调用浏览器,那么必须通过 webdriver 驱动来实现。不同的浏览器需要使用不同驱动程序,下面列出了不同浏览器驱动程序的下载地址:
谷歌浏览器 chromedrive:chromedriver.storage.googleapis.com/index.html
火狐浏览器 geckodriver:Releases · mozilla/geckodriver (github.com)
IE 浏览器 IEDriver:selenium-release.storage.googleapis.com/index.html
2.1检查;浏览器的版本,比如Chrome:帮助-关于Chrome
2.2下载跟浏览器版本相同的驱动(大版本相同即可)
看看刚刚查的谷歌浏览器版本找到对应驱动,比如我的122.0.6261.129 就不可以下载
因为 最高也才114 ,版本对不上会驱动不了,现在得重新下载个低版本的浏览器了
虽然我电脑的64位的,但是并没有64位,所以下载win32就行
2.3将浏览器的安装位置路径添加到环境变量里
下载后,解压,然后将解压出来的chromedriver.exe文件放入一个已经加入环境变量的目录中,或者将chromedriver.exe所在目录加入环境变量。
推荐将chromedriver.exe放入python安装目录下的Scripts目录中,因为该目录之前安装python环境时已经添加到了path环境变量中了,如:我的python安装目录是C:\Users\Administrator\AppData\Local\Programs\Python\Python38,如下图
2.4启动浏览器驱动 :chromedriver
终端输入:chromedriver
最后selenium的基础使用:python自动化框架代码
# 先导入后续要使用的包
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
# 创建一个webDriver的实例,接下来的所有操作都是在该实例上进行,以Chrome实例为例
driver = webdriver.Chrome()
# 窗口最大化
driver.maximize_window()
# 访问百度网址
driver.get("https://www.baidu.com/")
# 通过元素id找到对应元素并输入值进行搜索;此处为在百度搜索框输入selenium并点击查询
driver.find_element(By.ID,"kw").send_keys("selenium")
driver.find_element(By.ID,"su").click()
time.sleep(2)
再者补充一下定位元素方法 及注意的点
注意:
1定位元素的时候需要确定唯一性,可以在检查页面搜索它是不是唯一的。
2当页面内存在多个相同的定位特征值时,则定位方法默认会返回第一个符合条件的元素。
3定位原则:无论使用哪一种元素定位方法,都必须先保证期特征能够代表对应元素在当前页面的唯一性。
元素定位方法
1利用元素定位:先看id 再看name 其次是class
通过ID定位:使用元素的唯一ID进行定位。
driver.find_element_by_id("element_id")
通过Name定位:使用元素的name属性进行定位。
driver.find_element_by_name("element_name")
通过Class Name定位:使用元素的class属性进行定位。
driver.find_element_by_class_name("element_class")
通过Tag Name定位:使用元素的标签名进行定位。
driver.find_element_by_tag_name("tag_name")
2超链接定位 :Link Text 全部文本信息、Partial Link Text 部分文本信息
通过Link Text定位:使用链接文本进行定位(适用于<a>标签)。
driver.find_element_by_link_text("link_text")
通过Partial Link Text定位:使用部分链接文本进行定位。
driver.find_element_by_partial_link_text("partial_link_text")
3路径定位:XPath路径
通过XPath定位:使用元素在HTML结构中的路径进行定位。XPath是一种强大的定位方法,可以精确定位元素。
driver.find_element_by_xpath("xpath_expression")
其他说明:路径(相对路径)/绝对路径 ,最后full,属性,属性与逻辑结合, 属性与层级结合,属性包含,理由元素文本
4选择器定位:CSS选择器。
driver.find_element_by_css_selector("css_selector")
其他说明: id选择器 class选择器 属性选择器 元素选择器 层级选择器 属性选择器
拓展1:录制脚本
使用Selenium IDE
安装 在浏览器的拓展和主题 搜Selenium IDE (去chrome的拓展和主题居然让我更新浏览器先 重新找能直接安装的包)
下载地址:下载适用于Chrome的Selenium IDE 3.17.2 CRX文件 - Crx4Chrome
在别的地方下载好的拓展包导入chrome浏览器:打开扩展程序,把包拉进来就行
使用方法:点击图标启动工具——点击Record a new test in a new project 选第二个——填写工程名——填写要录制的项目地址 带协议头的请求地址:"https://www.baidu.com"——操作 点击停止录制按钮——填写测试名称——可以降低回放速度 ——导出脚本功能 Tests ——选择熟悉语言 Export ——放桌面用编辑器打开查看脚本,编辑器就是之前说安装的Notepad++
拓展2:其他操作
1自己写的基础代码 可以在PyCharm中设置自定义代码模板(Live Templates),后面直接使用
全选,点击codo/tools ——save as live template ....忘记了
移除:File——settings ——搜 live ——live templates ——点击 -号移除
2代码快速复制:Ctrl +D
快速移动:shift + alt + ↓ 键盘上下箭头