一、打开浏览器
selenium3支持基本上目前市面上最常见的几种浏览器,本文只写其中的chrome、firefox和ie的相关操作;
1、chrome浏览器
(1)、chromeDriver获取
chromeDriver获取地址为:http://chromedriver.storage.googleapis.com/index.html
在此路径下可以找到所有版本的driver,此页面下的LATEST_RELEASE文件打开即可看到最新的driver的版本。
进入各个版本下打开notes.txt即可看到此driver版本匹配的chrome浏览器版本范围,根据自己的浏览器的版本、计算机系统类型下载对应的driver。
(2)、启动chrome
基本启动方式代码如下:
import unittest
from selenium import webdriver
class Test(unittest.TestCase):
def testName(self):
driver = webdriver.Chrome("D:\\test\\driver\\chromedriver.exe")
driver.get("https://www.baidu.com")
if __name__ == "__main__":
unittest.main()
当然chrome启动还可以加其他参数,譬如启动参数、添加扩展、添加代理等;
代码如下所示:
options = webdriver.ChromeOptions
'''1、添加启动参数'''
options.add_argument('--lang=zh_CN.UTF-8')
'''2、自定义chrome.exe位置'''
options.binary_location(binary_path="D:\\software\\chrome.exe")
driver = webdriver.Chrome(executable_path="D:\\test\\driver\\chromedriver.exe",chrome_options=options)
driver.get("https://www.baidu.com")
1、添加启动参数:
如下为一些可用的chrome启动参数:
–user-data-dir=”[PATH]” 指定用户文件夹User Data路径,可以把书签这样的用户数据保存在系统分区以外的分区。
--disk-cache-dir=”[PATH]“ 指定缓存Cache路径
--disk-cache-size= 指定Cache大小,单位Byte
--first run 重置到初始状态,第一次运行
--incognito 隐身模式启动
--disable-javascript 禁用Javascript
--omnibox-popup-count=”num” 将地址栏弹出的提示菜单数量改为num个。
--user-agent=”xxxxxxxx” 修改HTTP请求头部的Agent字符串,可以通过about:version页面查看修改效果
--disable-plugins 禁止加载所有插件,可以增加速度。可以通过about:plugins页面查看效果
--disable-javascript 禁用JavaScript,如果觉得速度慢在加上这个
--disable-java 禁用java
--start-maximized 启动就最大化
--no-sandbox 取消沙盒模式
--single-process 单进程运行
--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 非沙盒模式运行
使用方法options.add_argument(value)
来添加,如下示例:
1、使用用户自定义设置来启动;
options = webdriver.ChromeOptions
options.add_argument('--user-data-dir=C:/Users/user_name/AppData/Local/Google/Chrome/User Data')
其中user_name为本机使用用户名称,由于测试用chrome安装在默认位置,故路径为代码所示地址;此参数用于有时候我们使用chrome浏览器做自动化时一些设置无法在代码中进行配置,故需要使用自定义设置的浏览器配置来启动的情况;
需要注意的事此时运行启动chrome浏览器需要把现有的chrome浏览器关掉才可以运行,不然会报错,否则则会启动一个全新的浏览器;
2、模拟iphone手机启动
options = webdriver.ChromeOptions
options.add_argument('user-agent=\"Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1\"'
3、设置浏览器最大化
options = webdriver.ChromeOptions
options.add_argument('--start-maximized')
4、忽略证书报错
options = webdriver.ChromeOptions
options.add_argument("--test-type", "--ignore-certificate-errors")
5、不打开浏览器界面,即headless模式
options = webdriver.ChromeOptions
options.add_argument("--headless")
2、设置chrome二进制文件位置
启动浏览器时也可以自己指定chrome.exe的位置,代码如下所示:
options = webdriver.ChromeOptions
options.binary_location(binary_path="D:\\software\\chrome.exe")
3、添加扩展应用
添加扩展输入参数为扩展文件路径
options = webdriver.ChromeOptions
options.add_extension("D:\\path\\to\\extension.crx")
4、添加chrome设置
此项是添加chrome的众多设置条件,这些设置的key:value的获取方式可以参考链接https://blog.youkuaiyun.com/df0128/article/details/82791430中的添加chrome设置那一节;
options = webdriver.ChromeOptions
prefs = {
'profile.default_content_setting_values' : {
'images' : 2
}
}
options.add_experimental_option('prefs',prefs)
5、添加代理
PROXY = "proxy_host:proxy:port"
options = webdriver.ChromeOptions()
desired_capabilities = options.to_capabilities()
desired_capabilities['proxy'] = {
"httpProxy":PROXY,
"ftpProxy":PROXY,
"sslProxy":PROXY,
"noProxy":None,
"proxyType":"MANUAL",
"class":"org.openqa.selenium.Proxy",
"autodetect":False
}
driver = webdriver.Chrome(desired_capabilities = desired_capabilities)
2、firefox浏览器
(1)、driver获取
由于使用selenium3,故启动firefox浏览器时已经不能像以前那样不需要driver就可以启动了,需要添加driver,driver名称为geckodriver.exe;
driver下载地址为https://github.com/mozilla/geckodriver/releases;
(2)、启动firefox
简单启动方法为:
def testName(self):
driver = webdriver.Firefox(executable_path="D:\\test\\driver\\geckodriver.exe")
driver.get("https://www.baidu.com")
带其他参数的启动方法为:
1、带启动参数
def testName(self):
options = webdriver.FirefoxOptions;
options.add_argument("-devtools","-tray")
driver = webdriver.Firefox(executable_path="D:\\test\\driver\\geckodriver.exe",firefox_options=options)
driver