目录

一、selenium简介

1.1、什么是selenium

1.2、为什么使用selenium

1.3、安装selenium

1.3.1、谷歌浏览器驱动下载

1.3.2、谷歌驱动和谷歌浏览器版本之间的映射表

1.3.3、查看谷歌浏览器版本

1.3.4、安装selenium库

二、selenium的使用

2.1、selenium的使用步骤

2.2、举例

三、selenium元素操作

3.1、selenium的元素定位

3.2、selenium访问元素信息

3.3、selenium交互

四、无界面浏览器 handless

4.1、handless基本配置——生成浏览器对象

4.2、handless 封装


一、selenium简介

1.1、什么是selenium

(1)selenium是一个用于Web应用程序测试的工具。

(2)selenium测试直接运行在浏览器中,就像真正的用户在操作一样。

(3)支持通过各种driver(FirfoxDriver,IternetExplorerDriver,OperaDriver,ChromeDriver)驱动真正的浏览器完成测试。

(4)selenium支持无界面浏览器操作。

1.2、为什么使用selenium

模拟浏览器功能,自动执行网页中的js代码,实现动态加载。

1.3、安装selenium

1.3.1、谷歌浏览器驱动下载

1》下载地址:http://chromedriver.storage.googleapis.com/index.html

2》windows(32/64)均下载win32.zip即可

3》下载后解压:得到chromedriver.exe

4》将chromedriver.exe文件放置在python程序中即可

1.3.2、谷歌驱动和谷歌浏览器版本之间的映射表

selenium之 chromedriver与chrome版本映射表(更新至v2.46)_huilan_same的博客-CSDN博客_chromedriver版本更多关于python selenium的文章,请关注我的专栏:Python Selenium自动化测试详解看到网上基本没有最新的chromedriver与chrome的对应关系表,便兴起整理了一份如下,希望对大家有用: chromedriver版本 支持的Chrome版本 v2.37 v64-66 v2.36 v63-65 v2.3...https://blog.csdn.net/huilan_same/article/details/51896672

1.3.3、查看谷歌浏览器版本

1.3.4、安装selenium库

二、selenium的使用

2.1、selenium的使用步骤

(1)导入:from selenium import webdriver

(2)创建谷歌浏览器操作对象:

path = 谷歌浏览器驱动文件路径

browser = webdriver.Chrome(path)

(3)访问网址

url = 要访问的网址

browser.get(url)

2.2、举例

# (1)导入selenium
from selenium import webdriver# (2)创建浏览器操作对象(导入浏览器驱动)
path = 'chromedriver.exe'browser = webdriver.Chrome(path)# (3)访问网站
url = 'https://www.baidu.com/'urlJd = 'https://www.jd.com/'# 模拟浏览器访问网址
browser.get(urlJd)# 获取网页源码
content = browser.page_source
print(content)

三、selenium元素操作

3.1、selenium的元素定位

元素定位:模拟鼠标和键盘操作元素,实现点击、输入等操作。操作元素之前需要先对其进行定位,webDriver提供了多种元素定位的方法。

# 元素定位(根据标签属性的属性值获取对象)
# find_element  返回对象
# find_elements 返回对象列表# 根据id返回对象
button1 = browser.find_element(by=By.ID, value='su')# 根据标签属性的属性值返回对象
button2 = browser.find_element(by=By.NAME, value='wd')# 根据xpath返回对象
button3 = browser.find_element(by=By.XPATH, value='//input[@id="su"]')# 根据标签的名字获取对象
button4 = browser.find_elements(by=By.TAG_NAME, value='input')# 根据bs4的语法,获取对象
button5 = browser.find_element(by=By.CSS_SELECTOR, value='#su')# 获取当前页面中的链接文本
button6 = browser.find_element(by=By.LINK_TEXT, value='地图')

3.2、selenium访问元素信息

1)获取标签属性值

2)获取标签名

3)获取元素文本

from selenium import webdriver
from selenium.webdriver.common.by import Bypath = 'chromedriver.exe'browser = webdriver.Chrome(path)url = 'https://www.baidu.com'browser.get(url)input = browser.find_element(by=By.ID, value='su')# 1、获取标签的属性值
print(input.get_attribute('class'))# 2、获取标签名
print(input.tag_name)# 3、获取元素文本
a = browser.find_element(by=By.LINK_TEXT, value='新闻')
print(a.text)

3.3、selenium交互

from selenium import webdriver
from selenium.webdriver.common.by import By
import time# 创建浏览器对象
path = 'chromedriver.exe'browser = webdriver.Chrome(path)# url
url = 'https://www.baidu.com'browser.get(url)time.sleep(2)# 获取文本框的对象
input = browser.find_element(by=By.ID, value='kw')# 在文本框中输入内容
input.send_keys('周杰伦')
time.sleep(2)# 获取百度一下的按钮
button = browser.find_element(by=By.ID, value='su')# 点击按钮
button.click()
time.sleep(2)# 划到页面底部
js_bottom = 'document.documentElement.scrollTop=100000'
browser.execute_script(js_bottom)
time.sleep(2)# 获取下一页的按钮
next = browser.find_element(by=By.XPATH, value='//a[@class="n"]')# 点击下一页
next.click()
time.sleep(2)# 回到上一页
browser.back()
time.sleep(2)# 回去
browser.forward()
time.sleep(3)# 退出
browser.quit()

四、无界面浏览器 handless

Chrome-handless 模式,Google针对Chrome浏览器 59版 新增加一种模式,可以在不打开UI界面的情况下使用 Chrome 浏览器,但是其运行效果与 Chrome 保持一致。

4.1、handless基本配置——生成浏览器对象

from selenium import webdriver
from selenium.webdriver.chrome.options import Optionschrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')# path是chrome浏览器的文件路径
path = r'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe'
chrome_options.binary_location = pathbrowser = webdriver.Chrome(chrome_options=chrome_options)

4.2、handless 封装

from selenium import webdriver
from selenium.webdriver.chrome.options import Optionsdef share_browser():chrome_options = Options()chrome_options.add_argument('--headless')chrome_options.add_argument('--disable-gpu')# path是chrome浏览器的文件路径path = r'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe'chrome_options.binary_location = pathbrowser = webdriver.Chrome(chrome_options=chrome_options)return browserbrowser = share_browser()
url = 'https://www.baidu.com'
browser.get(url)

Selenium模拟浏览器访问相关推荐

  1. Selenium 3 + BrowserMobProxy 2.1.4 模拟浏览器访问 (含趟坑)

    背景 Selenium 是一个Web自动化测试的组件,可基于WebDriver去控制弹出浏览器去做一系列Web点击或行为测试(当然也可以去做一些邪恶的事..),减少重复人工网页测试的开销.Browse ...

  2. python 模拟浏览器selenium_从零开始写Python爬虫 --- 3.1 Selenium模拟浏览器

    本来说好要写Mechanize模拟浏览器的,结果一看居然只支持2.x版本的Python,而且已经长久没有更新维护了,本着学新不学旧的原则,我决定跳过他,直接开学Selenium(其实就是我懒,逃 Se ...

  3. Python+BeautifulSoup+Selenium模拟浏览器循环自动播放视频,如哔哩哔哩某个UP主的视频

    1.前言 计算机的出现,推动了人类社会的进步,使得人们更高效的工作或是生活.当我们很"懒"的时候,计算机就能站出来,帮助我们做一些我们觉得浪费时间的事情了.你嫌用手点鼠标麻烦,计算 ...

  4. python 模拟浏览器selenium_python爬虫:使用Selenium模拟浏览器行为

    前几天有位微信读者问我一个爬虫的问题,就是在爬去百度贴吧首页的热门动态下面的图片的时候,爬取的图片总是爬取不完整,比首页看到的少.原因他也大概分析了下,就是后面的图片是动态加载的.他的问题就是这部分动 ...

  5. python 模拟用户点击浏览器_python爬虫之selenium模拟浏览器

    1.前言 之前在异步加载(AJAX)网页爬虫的时候提到过,爬取这种ajax技术的网页有两种办法:一种就是通过浏览器审查元素找到包含所需信息网页的真实地址,另一种就是通过selenium模拟浏览器的方法 ...

  6. 基于selenium模拟浏览器爬虫JS-frame,搜索+爬取详情页+翻页

    基于selenium模拟浏览器爬虫JS-frame网站 课设中需要爬一个很神奇的网站Web Gallery,一开始看结构以为是很简单的那种,开始爬的时候才发现它的结构之奇葩--所有东西都集成在一个ht ...

  7. python 模拟浏览器selenium 微信_Spider-Python爬虫之使用Selenium模拟浏览器行为

    分析 他的代码比较简单,主要有以下的步骤:使用BeautifulSoup库,打开百度贴吧的首页地址,再解析得到id为new_list标签底下的img标签,最后将img标签的图片保存下来. header ...

  8. python爬虫模拟浏览器的两种方法_python爬虫模拟浏览器访问-User-Agent过程解析

    这篇文章主要介绍了python爬虫模拟浏览器访问-User-Agent过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 模拟浏览器访问-Use ...

  9. python模拟浏览器下载文件在哪里_python下selenium模拟浏览器基础操作

    1.安装及下载 selenium安装: pip install selenium  即可自动安装selenium geckodriver下载:https://github.com/mozilla/ge ...

最新文章

  1. 用友发布新一代企业智能商旅及费控服务平台
  2. Nuget服务的搭建-打包-上传-删除
  3. Flutter 在铭师堂的实践
  4. [Machine Learning]--无监督学习
  5. Method Not Allowed一例
  6. java方法重载和重载方法_Java 8的方法参考进一步限制了重载
  7. clojure 使用Lazy-seq创建斐波那契数列
  8. Mac安装IDA后各版本android_server
  9. 洛谷 P2117 小Z的矩阵
  10. oauth2基本概念
  11. 单片机万年历阴阳历c语言,自己制作的单片机万年历 程序+原理图
  12. C#调用Windows图片和传真查看器打开图片
  13. 华为云notebook在线解压压缩包问题
  14. WalletContract区块钱包链接到web3js
  15. java 发邮件 乱码_JavaMail发送中文邮件乱码的解决 | 学步园
  16. 使用 OSquery 和 YARA 进行审计
  17. 升级coda_提高生产力:Coda的快速提示
  18. 31-scrapy框架爬虫【简单应用】-3个例子
  19. kali中nmap的使用
  20. 数字货币将提升跨境交易和支付清算速度

热门文章

  1. (排列组合的重复问题)
  2. -bash: ls: No such file or directory 产生的原因及修改方法
  3. Fiddler(二) - 使用Fiddler做抓包分析
  4. 解析某个94aw演示备忘
  5. 【 云原生 | kubernetes 】- tekton构建CI/CD流水线(二)
  6. 基于UBAT工具的试验性应用
  7. 【转】原码一位乘和移码一位乘
  8. 模型训练技巧:warmup学习率策略
  9. linux NUMA技术
  10. 数据结构 c语言(严蔚敏) 总结 + 代码