2.appium设置
{
"platformName": "Android", # 系统
"platformVersion": "5.1.1", # 系统版本
"deviceName": "127.0.0.1:62001", # 连接的机器
"appPackage": "cn.rongcloud.kaixinliao", # 包名称
"appActivity": "cn.rongcloud.kaixinliao.ui.activity.SplashActivity" 包版本
"noReset": true # 跳过启动空白页
}
3.获取appPackage和appActivity
aapt dump badging C:\Users\yu\Desktop\cn.rongcloud.kaixinliao.App.apk(包的文件名称)
aapt dump badging C:\Users\yu\Desktop\cn.rongcloud.kaixinliao.App.apk(包的文件名称) | find "launchable-activity"
或
1. adb shell # 连接虚拟机
2. logcat | grep cmp= 回车
3. 打开app
4.也是模拟器启动appium APP显示倒着 在夜神模拟器 设置 改为手机
5.dome
# pip install Appium-Python-Client
from appium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
import time
# 设备信息
cap = {
"platformName": "Android",
"platformVersion": "5.1.1",
"deviceName": "127.0.0.1:62001",
"appPackage": "com.tal.kaoyan",
"appActivity": "com.tal.kaoyan.ui.activity.SplashActivity",
"noReset": 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, 3).until(
lambda x: x.find_element_by_xpath("//android.widget.TextView[@resource-id='com.tal.kaoyan:id/tv_skip']")):
driver.find_element_by_xpath("//android.widget.TextView[@resource-id='com.tal.kaoyan:id/tv_skip']").click()
except:
pass
try:
# 登入
if WebDriverWait(driver, 3).until(lambda x: x.find_element_by_xpath(
"//android.widget.EditText[@resource-id='com.tal.kaoyan:id/login_email_edittext']")):
driver.find_element_by_xpath(
"//android.widget.EditText[@resource-id='com.tal.kaoyan:id/login_email_edittext']").send_keys(
"yu17682303516")
time.sleep(1)
driver.find_element_by_xpath(
"//android.widget.EditText[@resource-id='com.tal.kaoyan:id/login_password_edittext']").send_keys(
"yu1064145110")
time.sleep(1)
driver.find_element_by_xpath(
"//android.widget.Button[@resource-id='com.tal.kaoyan:id/login_login_btn']").click()
time.sleep(1)
except:
pass
# 点击研讯
if WebDriverWait(driver, 3).until(lambda x: x.find_element_by_xpath(
"//android.view.View[@resource-id='com.tal.kaoyan:id/date_fix']/android.widget.RelativeLayout[3]/android.widget.LinearLayout[1]/android.widget.ImageView[1]")):
driver.find_element_by_xpath(
"//android.view.View[@resource-id='com.tal.kaoyan:id/date_fix']/android.widget.RelativeLayout[3]/android.widget.LinearLayout[1]/android.widget.ImageView[1]").click()
time.sleep(1)
l = get_size()
x1 = int(l[0] * 0.5)
y1 = int(l[1] * 0.75)
y2 = int(l[1] * 0.25)
# 滑动操作
while True:
driver.swipe(x1, y1, x1, y2)
time.sleep(0.5)
6.连续滑动
def get_size(self):
x = self.driver.get_window_size()['width']
y = self.driver.get_window_size()['height']
return (x, y)
def data(self):
# 获取数据
if WebDriverWait(self.driver, 3).until(lambda x: x.find_element_by_xpath(
"//android.widget.ImageView[@resource-id='cn.rongcloud.kaixinliao:id/rc_left']")):
self.driver.find_element_by_xpath(
"//android.widget.ImageView[@resource-id='cn.rongcloud.kaixinliao:id/rc_left']").click()
time.sleep(10)
size = self.get_size()
while True:
try:
x1 = int(size[0] * 0.5)
y1 = int(size[0] * 0.25)
y2 = int(size[1] * 0.75)
# self.driver.swipe(x1, y2, x1, y1, 1000) # 1000毫秒内完成滑动
from appium.webdriver.common.touch_action import TouchAction
TouchAction(self.driver).press(x=x1, y=y1).wait(300).move_to(x=x1, y=y2).wait(500).move_to(x=x1, y=y1).wait(500).move_to(x=x1, y=y2).wait(500).move_to(x=x1, y=y1).wait(500).release().perform() # 连续移动
time.sleep(3)
print('-' * 100)
html = self.driver.page_source
print('b' * 100)
print(html)
print('b' * 100)