为什么用2
因为手机是android 7 在原生界面找不到元素 driver,page_source 一直处于状态, 我也不想这么玩,搭建appium已经煞费苦心,没法 继续试试
首先 npm install appium-uiautomator2-driver 目前装的是最新版2.37 但是发现与android 的chrome不匹配 然后就下载了 2.36的
chromedriver 版本对应关系 url
https://sites.google.com/a/chromium.org/chromedriver/downloads
然后再次运行 果然又报错 那就继续找原因
然后他温馨的告诉俺 appium-uiautomator2-server-v0.3.0.apk 这个龟儿子 有毛病 可能水土不服或者得了版本偏高偏低症,反正就是不行
然后我就去了他的路径 去给他治治
C:\Users\CY\AppData\Roaming\npm\node_modules\appium\node_modules\appium-uiautomator2-driver\uiautomator2
你猜怎么着,这个龟儿子 压根不存在 我XXXXXXX!!!!!!!!!!```````````````````````````
怎么装呢???? 百度呗
url https://github.com/appium/appium-uiautomator2-server/releases?after=v0.4.1 下载对应的版本 (应该有墙 真特么慢 等了估计2分钟)
然后我抱着试试看的想法再次运行了一下
你猜怎么着
还是不行!!!
selenium.common.exceptions.WebDriverException: Message: An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command 'C\:\\android-sdk\\platform-tools\\adb.exe -P 5037 -s a6a6a8b39904 install -r C\:\\Users\\CY\\AppData\\Roaming\\npm\\node_modules\\appium\\node_modules\\appium-uiautomator2-driver\\uiautomator2\\appium-uiautomator2-server-v0.3.0.apk' exited with code 1'; Stderr: 'adb: failed to install C:\Users\CY\AppData\Roaming\npm\node_modules\appium\node_modules\appium-uiautomator2-driver\uiautomator2\appium-uiautomator2-server-v0.3.0.apk: Failure [INSTALL_FAILED_USER_RESTRICTED: Install canceled by user]'; Code: '1'
如何查看端口是否被占用呢
netstat -ano | findstr 5037
原来端口被占用了 kill掉adb
再次运行
然后android装了几个app
又报错了
原来是这个又没装 有点窝火 就不能一次提醒完整嘛
下面的俩 都要下载
抱着有点火夫人态度,猛地点了一下run
哈哈哈哈
又报错了
这个问题难为了我一天,没有找到解决方案,
然后就重启了手机 就好了,就特么好了 气不气 太特么气了
然后再次run 成功了
综上所吹的牛逼 就是两点
1、chromedriver 与手机的版本是不是对应的
2、那个apk 是不是对应的 ,没有就去下载
测试代码
class AndroidLogin(unittest.TestCase): def setUp(self): conf = ConfigParser() self.file_path = file_path('1') conf.read(setting_path()) self.username = conf.get('teamLeader', 'Zhenglinlin') self.password = conf.get('operation', 'password') self.username1 = conf.get('management', 'yangyinghua') device_name = get_android_udid() stop_android_appium() sleep(2) start_android_appium(device_name) desired_caps = { 'platformName': 'Android', 'deviceName': device_name, 'platformVersion': get_android_version(), 'appPackage': conf.get('android', 'appPackage'), 'appActivity': conf.get('android', 'appActivity'), 'recreateChromeDriverSessions': True, 'automationName': 'Uiautomator2' } self.driver = android_driver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps) sleep(3) # handle_permissions_popovers(self.driver) def test_01_android_login(self): android_login(self.driver, self.username, self.password) def tearDown(self): self.driver.close()