前言
当我们使用urllib来访问浏览器时,并不是都可以获取完全的网页源码,urllib的功能主要是模拟浏览器向服务器发送请求,而selenium则是直接在浏览器中打开网页。就像真实的浏览器在运行。接下来我们一起进入selenium的学习。
文章目录前言
前言
(一)什么是selenium
(二)为什么使用selenium
(三)selenium的安装
1.浏览器驱动下载
2.selenium安装
3.selenium的简单使用
(四)selenium的元素定位
1.通过id来找到对象
2.根据标签属性的属性值来找到对象
3.根据xpath语句来获取对象
4.根据bs4语法来获取对象
5.根据标签名字来获取对象
6.通过当前页面中的链接文本来获取对象
(五)selenium访问元素信息
1.获取元素属性的属性值
2.获取标签名
3.获取元素文本
(六)selenium中的交互
1.点击
2.输入
3.后退操作
4.前进操作
5.模拟js滚动
6.获取网页代码
7.退出
实例
(一)什么是selenium
selenium是一个用于web应用程序测试的工具。
selenium测试直接运行在浏览器中,就像真实的用户操作一样。
支持通过各种driver(FirfoxDriver,IEDeriver,operaDriver,chromeDriver)驱动真实浏览器去完成测试。
selenium也是支持无界面浏览器操作的。
(二)为什么使用selenium
模拟浏览器功能,自动执行网页中的js代码,实现动态加载。
(三)selenium的安装
1.浏览器驱动下载
- 谷歌浏览器驱动下载地址
- FireFox驱动下载地址
- IE驱动下载地址
这里根据自己使用的浏览器和版本下载对应的驱动版本。
安装好之后为zip文件,需要进行解压并拖进pycharm当前路径方便使用
2.selenium安装
3.selenium的简单使用
from selenium import webdriver # 驱动的路径 path = 'chromedriver.exe' # 模拟真实的浏览器 browser =webdriver.Chrome(path) url = "https://baidu.com" browser.get(url) # page_source用来获取网页源码 content = browser.page_source print(content)
(四)selenium的元素定位
元素定位即自动化要做的就是模拟鼠标和键盘来操作这些元素,点击,输入等等,操作这些元素前首先要找到他们,webdriver提供很多定位元素的方法。
以下有6种方法:
1.通过id来找到对象
button = browser.find_element_by_id('su')
2.根据标签属性的属性值来找到对象
button = browser.find_element_by_class_name('wd')
3.根据xpath语句来获取对象
button = browser.find_element_by_xpath('//input[@id="su"]')
4.根据bs4语法来获取对象
button = browser.find_element_by_css_selector('#su')
5.根据标签名字来获取对象
button = browser.find_element_by_tag_name('input')
6.通过当前页面中的链接文本来获取对象
button = browser.find_element_by_link_text('新闻')
(五)selenium访问元素信息
例:
1.获取元素属性的属性值
button = browser.find_element_by_id('su') # 获取元素属性值 content = button.get_attribute('class') print(content)
button = browser.find_element_by_id('su') # 获取标签名 content = button.tag_name print(content)
运行结果:
3.获取元素文本
button = browser.find_element_by_link_text('新闻') # 获取元素文本 content = button.text print(content)
运行结果:
(六)selenium中的交互
1.点击2.输入3.后退操作4.前进操作5.模拟js滚动6.获取网页代码7.退出
实例
from selenium import webdriver import time path = 'chromedriver.exe' browser = webdriver.Chrome(path) url = 'https://baidu.com' browser.get(url) # 在搜索框内输入内容 input = browser.find_element_by_id('kw') input.send_keys('钢铁是怎样炼成的') time.sleep(3) # 找百度一下按钮并点击 button = browser.find_element_by_id('su') button.click() time.sleep(2) # 滑倒底部 move = 'document.documentElement.scrollTop=100000' browser.execute_script(move) time.sleep(2) # 查找下一页按钮并点击 next = browser.find_element_by_xpath('//a[@class="n"]') next.click() # 返回 browser.back() # 前进 browser.forward() # 退出 browser.quit()