网站的建设需要多少钱,泸县做网站公司,常见门户网站的基本功能,阿里域名注册查询环境准备
Python3.5以上Appium Server服务器Android SDK#xff0c;需要用到adb服务需要依赖Appium-Python-Client组件库真机或者模拟器#xff0c;推荐模拟器(真机一般安卓8版本以上了#xff0c;appium对安卓8以上版本元素获取的兼容性不太好)JDK8环境
实现
确保adb服务…环境准备
Python3.5以上Appium Server服务器Android SDK需要用到adb服务需要依赖Appium-Python-Client组件库真机或者模拟器推荐模拟器(真机一般安卓8版本以上了appium对安卓8以上版本元素获取的兼容性不太好)JDK8环境
实现
确保adb服务和appium服务及真机/模拟器正常打开然后在真机/模拟器上将抖音打开。 确定需要的参数 参数基本上都是固定的只需要确定抖音的包名和活动页即可。
adb shell dumpsys window | findstr mCurrentFocus获取到抖音的包名数据最后代码里的参数
desired_caps {platformName: Android, # 平台是安卓的deviceName: 127.0.0.1:62001, # 通过 adb devices命令获取appPackage: com.ss.android.ugc.aweme, # 抖音包名appActivity: .splash.SplashActivity, # 活动页platformVersion:7.1 # 7.1.2
}参数整完记得项目跑起来测试一下。 控制模拟器进入抖音后 我们需要去获取页面上的元素或坐标来实现滑动视频等其他操作。
到我们的Android SDK的tools目录下使用uiautomatoviewer.bat取页面快照。
操作的过程其实相对简单就是实现页面滑动即可可能会遇到弹框、点击授权之类的处理一下即可。然后还需要注意的就是元素的加载时间问题尽量考虑好网络、设备等其他因素将等待时间放长些。
# creator by wlh
# date 2023/3/15 19:43
import timefrom appium import webdriver
from appium.webdriver.common.touch_action import TouchAction
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as ecdesired_caps {platformName: Android,deviceName: 127.0.0.1:62001, # 通过 adb devices命令获取appPackage: com.ss.android.ugc.aweme,appActivity: .splash.SplashActivity,platformVersion: 7.1 # 7.1.2
}driver webdriver.Remote(http://127.0.0.1:4723/wd/hub, desired_capabilitiesdesired_caps)driver.implicitly_wait(20) # 等待弹框元素
driver.find_element(By.XPATH, //*[text同意]).click()
driver.implicitly_wait(20) # 等待弹框元素
driver.find_element(By.XPATH, //*[text允许]).click()time.sleep(1.5)
size driver.get_window_size()
width, height size[width], size[height] # 获取屏幕宽高action TouchAction(driver)
for i in range(5):# 实现滑动action.press(xwidth / 2, yheight / 3 * 2).wait(500).move_to(xwidth / 2, yheight / 3).release()action.perform()try:# 3s后 弹框元素不出现直接跳过继续执行WebDriverWait(driver, 3).until(ec.presence_of_element_located((By.XPATH, //*[text允许])))driver.find_element(By.XPATH, //*[text允许]).click()except:passtime.sleep(5)
driver.close_app()
driver.quit()