【selenim3+Python】界面自动化测试教程

一、打开浏览器

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.csdn.net/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
  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值