Web自动化简单教程
一、安装
需要准备的工具:
- python 下载地址:https://www.python.org/
- pycharm 下载地址:https://www.jetbrains.com/pycharm/download/#section=windows
- 安装浏览器驱动 Chrome驱动下载地址:http://chromedriver.storage.googleapis.com/index.html
下载好python后,直接进行安装,现在的python版本可以配置环境,可在安装的时候点击自动配置环境。安装好了后,我们就开始安装web自动化需要的python第三方库
- 安装selenium包
pip install selenium
验证
pip list
# 或者
pip show selenium
卸载
pip uninstall selenium
下载好pycharm,并安装后,就可以开始使用了
示例代码
我们实现一个简单的web自动化
示例代码
# 1.导包
import time
from selenium import webdriver
# 2.创建浏览器驱动对象
driver = webdriver.Chrome()
# 3.打开百度首页
driver.get("http://www.baidu.com")
# 4.暂停3秒
time.sleep(3)
# 5.关闭驱动对象
driver.quit()
元素定位
如何进行元素定位
元素定位就是通过元素的信息或元素层级结构来定位元素的
html页面由标签构成,标签的基本格式如下:
<标签名 属性名1=“属性值1” 属性名2=“属性值2”>文本</标签名>
元素定位方法
Selenium提供了八种定位元素方式
1. id
2. name
3. class_name
4. tag_name
5. link_text
6. partial_link_text
7. XPath
8. CSS
9.
我个人最常用的就是 Xpath 和 CSS,但是如果有id和name,我必用 id 和 css
定位
<标签名 id="id的属性值" name="name的属性值" class="class的属性值">
<a>a的文本</a>
文本
</标签名>
#id 元素定位
driver.find_element_by_id("id的属性")
# name元素定位
driver.find_element_by_name("name的属性值")
# class的元素定位
driver.find_element_by_class_name("class的属性值")
#tag_name的定位
driver.find_element_by_tag_name("标签名")
#link_text定位
#link_text定位是专门用来定位超链接元素(<a>标签</a>),并且是通过超链接的文本内容来定位元素
driver.find_element_by_link_text("a的文本")
# link_text:为超链接的全部文本内容
# partial_link_text定位
element = driver.find_element_by_partial_link_text(文本)
定位一组元素
elements = driver.find_elements_by_xxx("xxxxxx")
作用:1. 查找定位所有符合条件的元素
2. 返回值是一个列表 说明:列表数据格式的读取需要指定下标(下标从0开始)
driver.find_elements_by_tag_name("input")[1]
XPath定位方式
Xpath定位方式有四种,这里我就不详细说,我就推荐我常用的
//*[text()="xxx"] 文本内容是xxx的元素
//*[contains(@attribute,'xxx')] 属性中含有xxx的元素
//*[starts-with(@attribute,'xxx')] 属性以xxx开头的元素
示例代码
driver.find_element_by_xpath("//*[text()='访问 新浪 网站']")
driver.find_element_by_xpath("//*[contains(@placeholder,'用户名')]")
driver.find_element_by_xpath("//*[starts-with(@placeholder,'请输入密')]")
CSS定位方法
也是一样,推荐我常用的
input[type^='p'] type属性以p字母开头的元素
input[type$='d'] type属性以d字母结束的元素
input[type*='w'] type属性包含w字母的元素
基本的元素操作
1. click() 单击元素
2. send_keys(value) 模拟输入
3. clear() 清除文本
如有侵权,请联系我删除