App的爬虫----Appium的使用
先将Appium的config配置好,再启用
依次将这些数据填写
命令行输入adb shell
然后进入linux底层命令行 输入 logcat | grep cmp=
然后打开模拟器里的app,然后命令行就会出现运行的app状态。
这两个为appPackage和appActivity
多台设备同时使用时服务端需要设置port和bootstrapPort都不一样
客户端设置:
"udid":"127.0.0.1:62025", #为客户端设置udid
#appium import time from appium import webdriver #用来等待元素控件 from selenium.webdriver.support.ui import WebDriverWait cap = { "platformName": "Android", "platformVersion": "5.1.1", "deviceName": "127.0.0.1:62025", "udid":"127.0.0.1:62025", #为客户端设置udid "appPackage": "com.ss.android.ugc.aweme", "appActivity": "com.ss.android.ugc.aweme.splash.SplashActivity", "noReset": True, "unicodekeyboard":True, #允许输入中文 "resetkeyboard":True, #项目结束还原输入法 } driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',cap) #获取屏幕大小 def get_size(): x = driver.get_window_size()['width'] y = driver.get_window_size()['height'] return (x,y) #点击搜索 try: if WebDriverWait(driver,10).until(lambda x:x.find_element_by_id('com.ss.android.ugc.aweme:id/bhh')): driver.find_element_by_id('com.ss.android.ugc.aweme:id/bhh').click() except: pass #定位搜索框 if WebDriverWait(driver,10).until(lambda x:x.find_element_by_xpath('//android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.FrameLayout[1]/android.widget.FrameLayout[1]/android.widget.FrameLayout[1]/android.widget.EditText[1]')): driver.find_element_by_xpath('//android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.FrameLayout[1]/android.widget.FrameLayout[1]/android.widget.FrameLayout[1]/android.widget.EditText[1]').click() driver.find_element_by_id('com.ss.android.ugc.aweme:id/ge').send_keys('191433445') while driver.find_element_by_id('com.ss.android.ugc.aweme:id/ge').text != '191433445': driver.find_element_by_id('com.ss.android.ugc.aweme:id/ge').send_keys('191433445') time.sleep(0.2) #点击搜索 driver.find_element_by_id('com.ss.android.ugc.aweme:id/gg').click() #选择用户标签 if WebDriverWait(driver,10).until(lambda x:x.find_element_by_xpath('//android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.FrameLayout[1]/android.widget.FrameLayout[2]/android.view.View[1]/android.widget.FrameLayout[1]/android.widget.FrameLayout[1]/android.widget.RelativeLayout[1]/android.widget.HorizontalScrollView[1]/android.widget.LinearLayout[1]/android.support.v7.app.ActionBar$Tab[3]/android.widget.TextView[1]')): driver.find_element_by_xpath('//android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.FrameLayout[1]/android.widget.FrameLayout[2]/android.view.View[1]/android.widget.FrameLayout[1]/android.widget.FrameLayout[1]/android.widget.RelativeLayout[1]/android.widget.HorizontalScrollView[1]/android.widget.LinearLayout[1]/android.support.v7.app.ActionBar$Tab[3]/android.widget.TextView[1]').click()
King@_@