Docker-Appium安裝
Github docker-appium地址 : https://github.com/appium/app...
創(chuàng)建臨時(shí)容器(用于簡單命令測試)
docker run --privileged -d -p 4723:4723 -v ~/.android:/root/.android -v /dev/bus/usb:/dev/bus/usb --name container-appium appium/appium
若使用模擬器等(非USB連接)
模擬器的adb將USB模式轉(zhuǎn)為TCP連接方式:
adb -s 127.0.0.1:62001 tcpip 1119
遠(yuǎn)程Docker連接此模擬器:
docker exec -it container-appium adb connect 192.168.0.103:1119
查看虛擬設(shè)備是否連接成功
docker exec -it container-appium adb devices
若使用真機(jī)(USB連接)可直接使用如下配置
Dockerfile內(nèi)容如下
FROM python
RUN pip install -i http://pypi.douban.com/simple \
requests retrying appium-python-client --trusted-host pypi.douban.com
docker-compose.yaml內(nèi)容如下
version: "3.7"
services:
myspider:
build: .
volumes:
- /root/mycode:/root/mycode
command: python /root/mycode/1.py
depends_on:
- appium
appium:
image: appium/appium # 拉取鏡像完成自動化全套配置
ports:
- "4723:4723"
privileged: true
hostname: appium
# command: adb connect 192.168.0.103:1119
# command:
# - /bin/sh
# - -c
# - |
# adb connect 192.168.0.103:1119
# adb devices
# entrypoint: adb connect 192.168.0.103:1119
volumes:
- ~/.android:/root/.android
- /dev/bus/usb:/dev/bus/usb
爬蟲腳本代碼1.py如下
from appium import webdriver
from retrying import retry
import requests
import time
config = {}
config['platformName'] ='Android'
config['platformVersion'] = '7.1.1'
config['deviceName'] = '堅(jiān)果 Pro 2'
config['noReset'] = True
config['appPackage'] = 'org.mozilla.firefox'
config['appActivity'] = 'org.mozilla.gecko.BrowserApp'
################### 查看 appPackage 和 appActivity #################
## 注意:
## 這兩個(gè)值是針對某一軟件的配置,你需要在手機(jī)上打開你這個(gè)軟件,然后再執(zhí)行此命令:
## 我此例就是用的 手機(jī)里面的火狐瀏覽器。
## 那么我首先需要,將火狐打開。
## 然后再執(zhí)行如下命令才能查到想對應(yīng)的配置。
## 否則,查的是你手機(jī)運(yùn)行狀態(tài)的主界面應(yīng)用程序的配置信息
## 命令如下:
## docker exec -it container-appium adb shell # 進(jìn)入 adb shell
## dumpsys activity | grep mFocusedActivity
## 返回結(jié)果 / 前面的是 appPackage 的值
## 返回結(jié)果 / 后面的是 appActivity 的值
@retry(
stop_max_attempt_number = 1000000,
stop_max_delay = 10*1000,
)
def verify_request():
response = requests.get("http://appium:4723/wd/hub",timeout=0.5)
print(response)
verify_request()
with webdriver.Remote(
command_executor='http://appium:4723/wd/hub',
desired_capabilities=config
) as driver:
driver.get('https://tieba.baidu.com/index.html')
time.sleep(5)
with open('/root/mycode/test.html', 'w') as f:
f.write(driver.page_source)
print('寫入成功')
time.sleep(3)
前情鏈接
Pycharm 與 Docker 相關(guān)操作:https://segmentfault.com/a/11...
Docker 中 Selenium的使用: https://segmentfault.com/a/11...
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
