目录

  • Selenium浏览器自动化测试工具
  • Selenium模块在爬虫中的使用
  • Python简单使用Selenium
  • Selenium的基本操作
  • Selenium爬取动态加载的数据
  • Selenium动作链 (实现拖动操作)
  • Selenium使用谷歌无头浏览器 示例
  • 规避Selenium被检测

Selenium浏览器自动化测试工具

Selenium 是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。
支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。这个工具的主要功能包括:
测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。
测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本。

Selenium模块在爬虫中的使用

- selenium模块在爬虫中的使用- 概念:是一个基于浏览器自动化的模块。- 爬虫之间的关联:- 便捷的捕获到动态加载到的数据。(可见即可得)- 实现模拟登陆- 环境安装:pip install selenium- 基本使用:- 准备好某一款浏览器的驱动程序:http://chromedriver.storage.googleapis.com/index.html- 版本的映射关系:https://blog.csdn.net/huilan_same/article/details/51896672- 实例化某一款浏览器对象- 动作链:- 一系列连续的动作- 在实现标签定位时,如果发现定位的标签是存在于iframe标签之中的,则在定位时必须执行一个固定的操作:bro.switch_to.frame('id')- 无头浏览器的操作:无可视化界面的浏览器- PhantomJs:停止更新- 谷歌无头浏览器- 让selenium规避检测

Python简单使用Selenium

from time import sleep
from selenium import webdriver# 后面是你的浏览器驱动位置,记得前面加r'','r'是防止字符转义的
driver = webdriver.Chrome(r'chromedriver.exe')
# 用get打开百度页面
driver.get("http://www.baidu.com")
# 查找页面的“设置”选项,并进行点击
driver.find_elements_by_link_text('设置')[0].click()
sleep(2)
# # 打开设置后找到“搜索设置”选项,设置为每页显示50条
driver.find_elements_by_link_text('搜索设置')[0].click()
sleep(2)# 选中每页显示50条
m = driver.find_element_by_id('nr')
sleep(2)
m.find_element_by_xpath('//*[@id="nr"]/option[3]').click()
m.find_element_by_xpath('.//option[3]').click()
sleep(2)# 点击保存设置
driver.find_elements_by_class_name("prefpanelgo")[0].click()
sleep(2)# 处理弹出的警告页面   确定accept() 和 取消dismiss()
driver.switch_to_alert().accept()
sleep(2)
# 找到百度的输入框,并输入 美女
driver.find_element_by_id('kw').send_keys('美女')
sleep(2)
# 点击搜索按钮
driver.find_element_by_id('su').click()
sleep(2)
# 在打开的页面中找到“Selenium - 开源中国社区”,并打开这个页面
driver.find_elements_by_link_text('美女_百度图片')[0].click()
sleep(3)# 关闭浏览器
driver.quit()
  • 执行结果

Selenium的基本操作

from selenium import webdriver
from time import sleep
bro = webdriver.Chrome(executable_path='chromedriver.exe')
bro.get('https://www.jd.com/')
sleep(1)
#进行标签定位
search_input = bro.find_element_by_id('key')
search_input.send_keys('mac pro')btn = bro.find_element_by_xpath('//*[@id="search"]/div/div[2]/button')
btn.click()
sleep(2)#执行js
bro.execute_script('window.scrollTo(0,document.body.scrollHeight)')
sleep(2)page_text = bro.page_source
print(page_text)sleep(2)
bro.quit()
  • 执行效果点击查看

Selenium爬取动态加载的数据

  • http://125.35.6.84:81/xk/ 目标网站

#便捷的捕获到动态加载到的数据。(可见即可得)
from selenium import webdriver
from time import sleep
from lxml import etree
bro = webdriver.Chrome(executable_path='chromedriver.exe')bro.get('http://125.35.6.84:81/xk/')
sleep(1)
page_text = bro.page_source
page_text_list = [page_text]for i in range(3):bro.find_element_by_id('pageIto_next').click()#点击下一页sleep(1)page_text_list.append(bro.page_source)for page_text in page_text_list:tree = etree.HTML(page_text)li_list = tree.xpath('//ul[@id="gzlist"]/li')for li in li_list:title = li.xpath('./dl/@title')[0]num = li.xpath('./ol/@title')[0]print(title+':'+num)sleep(2)
bro.quit()#执行结果
江苏正东生物科技有限公司:苏妆20160159
吉林正德药业有限公司:吉妆20160011
湖北潜江制药股份有限公司:鄂妆20190003
深圳市发康堂中医药研究有限公司:粤妆20180101
洞玛生物技术(深圳)有限公司:粤妆20160644
领先(中国)生物科技有限公司:闽妆20170030
普洱联众生物资源开发有限公司:云妆20160023
珠海市富康源旅游用品有限公司:粤妆20180248
广州康又美化妆品有限公司:粤妆20160830
江苏西宏生物医药有限公司:苏妆20190023
广州市大研生物技术有限公司:粤妆20161133
广州玖宫研化生物科技有限公司:粤妆20160438
......省略

Selenium动作链 (实现拖动操作)

"""
动作链:- 一系列连续的动作- 在实现标签定位时,如果发现定位的标签是存在于iframe标签之中的,则在定位时必须执行一个
"""
from selenium import webdriver
from time import sleep
from selenium.webdriver import ActionChains
bro = webdriver.Chrome(executable_path='chromedriver.exe')
bro.get('https://www.runoob.com/try/try.php?filename=jqueryui-api-droppable')
bro.switch_to.frame('iframeResult')
div_tag = bro.find_element_by_id('draggable')
#拖动= 点击+滑动
action = ActionChains(bro)
action.click_and_hold(div_tag)for i in range(5):#perform让动作链立即执行action.move_by_offset(17,5).perform()sleep(0.5)action.release()sleep(3)bro.quit()
  • 执行效果点击查看

Selenium使用谷歌无头浏览器 示例

#使用谷歌无头浏览器
from selenium import webdriver
from selenium.webdriver.chrome.options import Optionschrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')driver = webdriver.Chrome(r'chromedriver.exe',chrome_options=chrome_options)
driver.get('https://www.cnblogs.com/')
print(driver.page_source)#执行结果
<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml" lang="zh-cn"><head><script src="https://securepubads.g.doubleclick.net/gpt/pubads_impl_rendering_2019091201.js"></script><script async="" src="https://www.google-analytics.com/analytics.js"></script><meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /><meta name="referrer" content="always" /><title>博客园 - 开发者的网上家园</title>
.......................省略.......................
沪公网安备 31011502001144号</span></a></div></div></div>
</body>
</html>    

规避Selenium被检测

#如何规避selenium被检测
from selenium import webdriver
from selenium.webdriver import ChromeOptionsoption = ChromeOptions()
option.add_experimental_option('excludeSwitches', ['enable-automation'])driver = webdriver.Chrome(r'chromedriver.exe',options=option)
driver.get('https://www.taobao.com/')

作 者:郭楷丰
出 处:https://www.cnblogs.com/guokaifeng/
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角 【推荐】一下。您的鼓励是博主的最大动力!
自 勉:生活,需要追求;梦想,需要坚持;生命,需要珍惜;但人生的路上,更需要坚强。带着感恩的心启程,学会爱,爱父母,爱自己,爱朋友,爱他人。

转载于:https://www.cnblogs.com/guokaifeng/p/11536628.html

Selenium浏览器自动化测试工具相关推荐

  1. 模拟浏览器自动化测试工具Selenium之一eclipse集成开发部署篇

    1.背景:在网页自动化测试和网页表单自动交互的场景中,对动态js页面的加载,隐藏链接爬虫和表单元素需要加载js来解析. htmlunit相比较于htmlparser以及httpclient只能解析静态 ...

  2. Python学习笔记(一)——浏览器自动化测试工具Selenium

    看了网友用Python通过影评来分析电影是好片还是烂片,自己也有了个想法想去分析下百度贴吧的帖子是精品帖子还是水帖子.目前正在熟悉工具的使用. 会用到的库:Selenium, pandas(数据模型) ...

  3. 自动化测试工具selenium python_Selenium自动化测试工具使用方法汇总

    1.设置无头浏览器模式 from selenium import webdriver from selenium.webdriver.chrome.options import Options chr ...

  4. 自动化测试工具selenium python_WEB自动化测试工具selenium录制器

    简介 selenium录制器是最近刚流行起来的一个WEB自动化测试工具,由多测测团队开发. Selenium录制器采用关键字驱动的理念,简化测试用例的创建和维护,可以直接运行在浏览器中,就像真正的用户 ...

  5. selenium浏览器自动化测试框架文档(修正版)

    写在最前面:目前自动化测试并不属于新鲜的事物,或者说自动化测试的各种方法论已经层出不穷,但是,能够在项目中持之以恒的实践自动化测试的团队,却依旧不是非常多.有的团队知道怎么做,做的还不够好:有的团队还 ...

  6. 模拟浏览器自动化测试工具Selenium之五Centos系统命令行下部署selenium环境试验

    一.背景:     Selenium是一个web自动化测试框架,也支持从HTML页面上爬取javascript生成的或AJAX的内容.     selenium2支持通过各种driver(Firfox ...

  7. 模拟浏览器自动化测试工具Selenium之六设置代理篇

    在使用Selenium自动化测试时,如果需要设置代理访问网络时,可以参考如下代码: package com.test;import java.util.List; import org.openqa. ...

  8. 模拟浏览器自动化测试工具Selenium之三页面窗口切换开发篇

    不同网站有不同特性,需要掌握selenim基本网页元素定位以及浏览器控制,本文解析网页主要实现以下操作: 1)模拟鼠标操作,点击按钮提交:2)获取浏览器窗口句柄,切换到当前窗口下操作:3)处理不带总页 ...

  9. 模拟浏览器自动化测试工具Selenium之二Html基本元素开发篇

    发现用IE浏览器,有很多动态网站加载错误,只好安装chrome浏览器,然后下载chrome driver来驱动.通过selenium的基本元素定位操作来和网页交互. 网页解析主要动作:1)表单自动填写 ...

最新文章

  1. 面试前赶紧看了5道Python Web面试题,Python面试题No17
  2. 为什么不应该重写service方法?
  3. mysql多实例脚本
  4. java二维数奇数组金字塔_金字塔内发现一组神奇数字 至今无解(图)
  5. aptio setup utility怎么设置u盘启动_CentOS 7下载及系统U盘制作
  6. linux centos更换用户名和密码忘记了,centos7系统中忘记root管理员账号密码,怎么修改密码的解决方式...
  7. 网络知识 | 《图解TCP/IP》读书笔记(下)
  8. 2017洛谷3月丧病月赛思考记录
  9. T430s BIOS白名单破解
  10. 联机饥荒一直显示启动服务器,饥荒联机版启动服务器时遇到一些麻烦 | 手游网游页游攻略大全...
  11. 密封橡胶圈尺寸缺陷视觉检测系统
  12. 使用Python3自带GUI tkinter 做的图形化操作SQLite3数据库的工具 v1.12 修修补补将就用
  13. 阿里云服务器ECS操作系统有哪些版本?
  14. Python图片转base64
  15. 用递归实现阶乘计算器
  16. YOLOv5和YOLOv7环境(GPU)搭建测试成功
  17. java wap访问网页_在PC使用Chrome访问wap网页
  18. 【庄碰辉】生活的姿态
  19. 【激光测距仪方案】激光测距仪的测量原理及作用方法
  20. STUFF()函数将查询的多行数据合并为一行

热门文章

  1. C++搭配PCL的Bunny点云
  2. 小程序源码:2022强大的修复版趣味心理测试小程序源码,趣味测试引流裂变神器
  3. # 华为mate40 or iphon 12
  4. Java学习日记Day21
  5. Tableau Prep经验总结
  6. C语言中不同类型的运算和比较问题
  7. css过滤白色,使用CSS3模糊滤镜时,白色模糊的图像?
  8. 金三银四求职季,程序员面试必备——编程语言篇
  9. 华为畅享7怎么切换android系统,华为畅享7是什么系统_华为畅享7系统更新-太平洋IT百科...
  10. 鸿蒙系统的家电,美的九阳搭载鸿蒙系统的家电正式上市,这手机系统上市真的稳了...