自动化对比
模块 | UIAutomation | appium | selenium | pyppeteer | 终极武器(chrome-devtools-protocol) |
---|---|---|---|---|---|
跨平台 | 否 | Android,ios | 是 | chrome 浏览器就行 | 是 |
缺点 | 无法跨平台 | adb驱动 | 太强大 | chrome 协议 | 底层 |
driver | google原生 | UIAutomation | #很多 | chrome | all |
#很多:
selenium可支持的PC浏览器驱动包括:
safari driver【包含在selenium server中】
ie driver
chrome driver 【第三方】
opera driver【第三方]
selenium可支持的伪浏览器驱动:
PhantomJS Driver【第三方,停止更新】
HtmlUnit Driver【包含在selenium server中】
selenium可支持的移动端驱动:
Windows Phone driver
Selendroid-Selenium for Android【第三方】
ios-driver【第三方】
Appium 支持iphone、ipad、android、FirefoxOS【第三方】
驱动代码
1 | python 端安装 uiautomator2 client: |
1 | import uiautomator2 as u2 |
1 | 安装: |
1 | from selenium import webdriver |
1 | 1.node.js 安装 |
1 | # encoding: utf-8 |
pyppeteer
1 | 原生是node.js 开发基于chrome-devtools-protocol + websocket |
1 | # encoding: utf-8 |
chrome-devtools-protocol
1 | 底层采用websocket 协议控制浏览器。[协议连接](https://chromedevtools.github.io/devtools-protocol/) |
1 | import pychrome |
自动化反反爬虫
1 | Object.defineProperty(navigator, 'webdriver', { |
1 | ''' |
1 | # 修改chromedriver |
总结:seleium 是采用webdriver 协议 ,seleium server端也是使用chrome-devtools-protocol。只不过为了跨平台采用webdriver restful api 形式开发。chrome-devtools-protocol 可以使用 ./chromium –remote-debug 自动化测试