- selenium 测试直接在浏览器中运行,可以模拟真实用户浏览网站。selenium 测试可以在 Windows、Linux 和 Macintosh上的 Internet Explorer、Chrome和 Firefox 中运行
centos7 安装selenium和chromedriver
先安装好python3
安装相关包
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
准备安装python3.7,这个版本需要一个新的包libffi-devel
yum install libffi-devel -y
下载python3.7安装
wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tar.xz
tar -xvf Python-3.7.3.tar.xz
cd Python-3.7.3
./configure prefix=/usr/local/python3
make && make install
python3软链
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
pip3 软链
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
使用pip3进行安装selenium
pip3 install selenium
安装谷歌浏览器驱动
http://npm.taobao.org/mirrors/chromedriver/ 选择比较新的版本下载,如81.0.4044.20
mv chromedriver /usr/local/bin
chmod u+x,o+x /usr/local/bin/chromedriver
安装谷歌浏览器
vim /etc/yum.repos.d/google.repo
输入
[google]
name=Google-x86_64
baseurl=http://dl.google.com/linux/rpm/stable/x86_64
enabled=1
gpgcheck=0
gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub
保存退出并执行
yum update
yum install google-chrome-stable
如果没法科学上网,可使用以下方法,这个地址是可以直接访问的
yum install https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
mac和windows 安装selenium和chromedriver
- 安装基本上差不多,先安装python3和谷歌浏览器,再下载chromedriver就可以了,chromedriver下载之后也可以放在项目中,代码里指定文件路径使用
webdriver.Chrome(executable_path='./chromedriver.exe', options=option)
示例
# -*- coding:utf-8 -*-
from selenium import webdriver
option = webdriver.ChromeOptions()
option.add_argument('headless') #使用无界面浏览
option.add_argument('--no-sandbox')#关闭沙箱
option.add_argument("--start-maximized")#最大化
option.add_argument("no-default-browser-check")
option.add_argument("--disable-extensions")
option.add_argument("--disable-gpu")
option.add_argument("--disable-dev-shm-usage")
option.add_argument('user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3)')
option.add_argument("--proxy-server=http://111.111.111.111:9999") 可使用代理
prefs = {"profile.managed_default_content_settings.images": 2} # 不加载图片
option.add_experimental_option("prefs", prefs)
driver = webdriver.Chrome(executable_path='./chromedriver.exe', options=option)
driver.maximize_window() #设置浏览器最大化,也可以通过driver.set_window_size(1920,1080)自定义窗口大小
current_window = driver.current_window_handle #当前打开的标签页
all_windows = window_handles #所有打开的标签页
driver.switch_to.window(window_handle) #可切换到指定标签页
driver.set_page_load_timeout(5) #可设置页面加载超时时间
driver.set_script_timeout(0.5) #可设置js执行超时时间
driver.execute_script(alert('test')) #可执行js
driver.find_element_by_id('kw').send_keys(u'泡面师') #找到ID为kw的元素也就是百度的搜索框输入文字
driver.find_element_by_id('su').click() 找到按钮点击搜索
driver.save_screenshot("baidu.png") #保存屏幕截图
print(driver.page_source) #也可以打印页面源码
driver.close() #务必关闭和退出,不然测试的时候报几次错就会发现打开了N个浏览器进程
driver.quit()
- 使用参数,更多参数查看https://sites.google.com/a/chromium.org/chromedriver/capabilities
–process-per-tab 每个标签使用单独进程
–process-per-site 每个站点使用单独进程
–in-process-plugins 插件不启用单独进程
–disable-popup-blocking 禁用弹出拦截
–disable-plugins 禁用插件
–disable-images 禁用图像
–incognito 启动进入隐身模式
–enable-udd-profiles 启用账户切换菜单
–proxy-pac-url 使用pac代理 [via 1/2]
–lang=zh-CN 设置语言为简体中文
–disk-cache-dir 自定义缓存目录
–disk-cache-size 自定义缓存最大值(单位byte)
–media-cache-size 自定义多媒体缓存最大值(单位byte)
–bookmark-menu 在工具 栏增加一个书签按钮
–enable-sync 启用书签同步
–single-process 单进程运行Google Chrome
–start-maximized 启动Google Chrome就最大化
–disable-java 禁止Java
–no-sandbox 非沙盒模式运行
文章评论