【python】之selenium模块,实现Web端自动化测试!【基础篇】
后台-插件-广告管理-内容页头部广告(手机) |
Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,Selenium 可以直接调用浏览器,它支持所有主流的浏览器(包括PhantomJS这些无界面的浏览器),可以接收指令,让浏览器自动加载页面,获取需要的数据,甚至页面截屏等。我们可以使用selenium很容易完成之前编写的爬虫,接下来我们就来看一下selenium的运行效果
一.安装环境
python+selenium+chrome
(1)python建议用python3及以上的版本
(2)selenium库这边我们使用pip接口进行安装
pip install seleniumpip接口详细说明可以看:https://blog.csdn.net/pengneng123/article/details/129556320
(3)这边推荐使用chrome浏览器,使用chrome浏览器则需要对应的驱动,下载链接如下:
http://chromedriver.storage.googleapis.com/index.html
找到与浏览器相对应的版本,32位即可驱动。
二.selenium库基础函数使用
1.webdriver.Chrome()
- from selenium import webdriver
- ####实例化浏览器
- driver = webdriver.Chrome()
输出如下:
2.driver.get() 函数打开网页包含协议头
driver.get('https://www.baidu.com/')3.driver.maximize_window() 函数实现最大化浏览器
4.driver.back() 函数实现后退操作
5.driver.forward() 函数实现前进操作
6.driver.refrensh() 函数实现刷新页面功能
7.driver.close() 函数实现关闭当前主窗口(主窗口:默认启动那个界面,就是主窗口)
8.driver.quit() 函数实现关闭driver对象启动的全部页面
9.driver.title 函数获取当前页面title信息
10.driver.current_url 函数获取当前页面url信息
三.selenium库定位八大方法
1.id定位方法
- from selenium import webdriver
- from selenium.webdriver.common.by import By
- driver = webdriver.Chrome() ###实例化浏览器
- driver.get('https://www.baidu.com/') ###get打开浏览器
- element = driver.find_element(By.ID, "kw").send_keys('搜索') ###id定位方法,kw=id, 搜索为输入
输出:
2.name定位方法
- from selenium import webdriver
- from selenium.webdriver.common.by import By
- driver = webdriver.Chrome()
- driver.get('https://www.baidu.com/')
- ###name定位方法 name='wd',1111为输入的内容
- username = driver.find_element(By.NAME, 'wd').send_keys('1111')
输出:
3.class_name定位方法
- from selenium import webdriver
- from selenium.webdriver.common.by import By
- driver = webdriver.Chrome()
- driver.get('https://www.baidu.com/')
- ###class_name定位方法,class = 's_ipt',输入123456
- Class = driver.find_element(By.CLASS_NAME, 's_ipt').send_keys('123456')
输出:
4.tag_name定位方法
- from selenium import webdriver
- from selenium.webdriver.common.by import By
- driver = webdriver.Chrome()
- driver.get('https://www.baidu.com/')
- ###
- tel = driver.find_element(By.TAG_NAME, 'input').send_keys('1111')
一般标签重复性过高,要精确定位,都不会选择tag_name !
5.link_text定位方法,click单击打开
- from selenium.webdriver.common.by import By
- from selenium.webdriver.common.keys import Keys
- driver = webdriver.Chrome()
- driver.get('https://www.baidu.com/')
- ###该⽅法只针对超链接元素(a 标签),并且需要输入超链接的全部⽂本信息
- Text = driver.find_element(By.LINK_TEXT, '新闻').click()#
输出:
6.partial_link_text定位方法
- from selenium.webdriver.common.by import By
- from selenium.webdriver.common.keys import Keys
- driver = webdriver.Chrome()
- driver.get('https://www.baidu.com/')
- ###partial_link_text定位方法,click单击打开,可以使用精准或模糊匹配
- username = driver.find_element(By.PARTIAL_LINK_TEXT, '新闻').click()
7.Xpath定位方法
- from selenium.webdriver.common.by import By
- from selenium.webdriver.common.keys import Keys
- driver = webdriver.Chrome()
- driver.get('https://www.baidu.com/')
- ###Xpath定位方法,称为相对路径定位法,运用copy xpath复制相对路径
- username = driver.find_element(By.XPATH, '//*[@id="kw"]').send_keys('1111')
输出:
8.CSS定位法
常用策略:
1、id 选择器
语法:#id属性值
2、class 选择器
语法:.class属性值(如果使⽤具有多个值的 class 属性,则需要传入全部的属性值 语法:[class="全部属性值"])
3、属性选择器
语法1:[属性名=“属性值”]
语法2:标签名[属性名=“属性值”]
4、标签选择器
语法:标签名 如input,button
5、层级选择器
父子层级关系:父层级策略 > 子层级策略 (也可以使用空格连接上下层级策略)
祖辈后代层级关系:祖辈策略 后代策略
提示:>与空格的区别,大于号必须为子元素,空格则不用。
- from selenium.webdriver.common.by import By
- from selenium.webdriver.common.keys import Keys
- driver = webdriver.Chrome()
- driver.get('https://www.baidu.com/')
- ###id属性值
- ID = driver.find_element(By.CSS_SELECTOR, '#kw"]').send_keys('11111')
- ###class属性值
- Class = driver.find_element_by_css_selector('[class="s_ipt"]').send_keys('1111')
- ###语法属性
- user = driver.find_element_by_css_selector('input[id="kw"]').send_keys('1111')
- user = driver.find_element_by_css_selector('[name="wd"]').send_keys('1111')
- ###语法层级选择属性
- user = driver.find_element_by_css_selector('#s_kw_wrap>input').send_keys('1111')
- user = driver.find_element_by_css_selector('#form input').send_keys('1111')
- driver.close()
八大定位方法就如上所述。
四.实例演示
1.元素的操作方法
(1)、.send_keys() # 输入方法
(2)、.click() # 点击方法
(3)、.clear() # 清空方法
2.实际操作
(1)进入百度搜索(2)搜索栏输入python(3)百度一下(3)选择python百度百科进入
- from selenium.webdriver.common.by import By
- from selenium.webdriver.common.keys import Keys
- driver = webdriver.Chrome()
- ###进入百度搜索
- driver.get('https://www.baidu.com/')
- ###找到输入框,输入python
- element = driver.find_element(By.ID, "kw").send_keys('python')
- ###单击鼠标开始搜索
- element = driver.find_element(By.ID, "su").click()
- ###找到百度百科,单击鼠标进入
- username = driver.find_element(By.XPATH, '//*[@id="2"]/div/div/h3/a').click()
后续对于selenium库的更多使用,下期再继续介绍啦!
@Neng
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。
在线投稿:投稿 站长QQ:1888636
后台-插件-广告管理-内容页尾部广告(手机) |