selenium
用于web测试的工具
支持无界面浏览器操作
一、安装
- 操作谷歌浏览器驱动下载地址
- 一定要确保谷歌浏览器和浏览器驱动是同一大版本,dev版本的谷歌浏览器会超前一些
- https://chromedriver.storage.googleapis.com/index.html
- 下载解压后将.exe文件放到项目根目录下
- 谷歌驱动和谷歌浏览器版本之间的映射表
- 查看谷歌浏览器版本
- 谷歌浏览器右上角->帮助->关于
- pip install selenium
二、使用
- 导入: from selenum import webdriver
- 创建谷歌浏览器操作对象:
- path = 谷歌浏览器驱动文件路径
- browser = webdriver.Chrome(path)
- 访问网址
- url = 要访问的网址
- browser.get(url)
使用案例
# _*_ coding : utf-8 _*_ |
三、获取标签元素
使用方式:
- from selenium.webdriver.common.by import By
- button = browser.find_element(By.ID, ‘su’)
获取方式:(模拟获取button)
id获取
button = browser.find_element(By.ID, 'su')
标签属性的name属性值获取
button = browser.find_element(By.NAME, 'referrer')
xpath获取
button = browser.find_element(By.XPATH, '//input[@id="su"]')
bs4获取(select语法)
button = browser.find_element(By.CSS_SELECTOR, '#su')
链接文本获取(超链接中的文本)
# <a>视频</a>
button = browser.find_element(By.LINK_TEXT, '视频')
案例
# _*_ coding : utf-8 _*_ |
四、访问元素信息
获取元素属性
button.get_attribute('class')
获取元素文本
button.text
获取标签名
button.tag_name
五、元素交互
点击:click()
输入:send_keys()
后退操作:browser.back()
前进操作:browser.forword()
模拟JS滚动:
js = 'document.documentElement.scrollTop=100000'
browser.execute_script(js) # 执行js代码获取网页代码:page_source
退出:browser.quit()
保存屏幕快照:browser.save_screenshot(‘baidu.png’)
案例:
# _*_ coding : utf-8 _*_ |
六、Phantomjs
直接使用Chrome handless就好,这个已经停止更新了
无界面的浏览器
支持页面元素查找,js执行等
不进行css和gui渲染,运行效率更高
6.1 使用
与selenium使用方式一致,只有引入的驱动不一样
- 获取PhantomJs.exe文件路径path
- browser = webdriver.PhantomJS(path)
- browser.get(url)
- 扩展:保存屏幕快照:browser.save_screenshot(‘baidu.png’)
七、Chrome handless
无界面浏览器
使用
导包
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options设置chrome_options
chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')设置chrome路径
# r表示这是一个原始字符串,不需要对\进行转义
path = r'C:\Program Files\Google\Chrome\Application\chrome.exe'
chrome_options.binary_location = path获取浏览器对象
browser = webdriver.Chrome(chrome_options=chrome_options)
整体代码,可写入方法进行封装
# 封装
def share_chrome():
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
# r表示这是一个原始字符串,不需要对\进行转义
path = r'C:\Program Files\Google\Chrome\Application\chrome.exe'
chrome_options.binary_location = path
browser = webdriver.Chrome(chrome_options=chrome_options)
return browser# 使用
browser = share_chrome()
url = 'https://www.baidu.com'
browser.get(url)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 竹间小客!