admin管理员组文章数量:1660864
from appium import webdriver
from time import sleep
import json
#获取进入主界面的配置i
desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '9.0'
desired_caps['deviceName'] = 'PWHUT19927016255'
desired_caps['appPackage'] = "com.ss.android.article.lite"
desired_caps['appActivity'] = "com.ss.android.article.lite.activity.SplashActivity"
desired_caps['noReset'] = 'true'
#appium服务器
server="http://localhost:4723/wd/hub"
print(json.dumps(desired_caps))
#链接appium服务器
driver = webdriver.Remote(server,desired_caps)
#向上滑动界面
def swipeUp(driver, t=500, n=1):
l = driver.get_window_size()
x1 = l['width'] * 0.5 # x坐标
y1 = l['height'] * 0.75 # 起始y坐标
y2 = l['height'] * 0.25 # 终点y坐标
for i in range(n):
driver.swipe(x1, y1, x1, y2, t)
#像下滑动界面
def swipeDown(driver, t=500, n=1):
l = driver.get_window_size()
x1 = l['width'] * 0.5 # x坐标
y1 = l['height'] * 0.25 # 起始y坐标
y2 = l['height'] * 0.75 # 终点y坐标
for i in range(n):
driver.swipe(x1, y1, x1, y2, t)
#向左滑动界面
def swipLeft(driver, t=500, n=1):
l = driver.get_window_size()
x1 = l['width'] * 0.75
y1 = l['height'] * 0.5
x2 = l['width'] * 0.25
for i in range(n):
driver.swipe(x1, y1, x2, y1, t)
#向右滑动界面
def swipRight(driver, t=500, n=1):
l = driver.get_window_size()
x1 = l['width'] * 0.25
y1 = l['height'] * 0.5
x2 = l['width'] * 0.75
for i in range(n):
driver.swipe(x1, y1, x2, y1, t)
# 选择新闻 定位新闻组件
def selectNews(driver):
news = []
try:
news = driver.find_element_by_id("android:id/list").find_elements_by_xpath(
"//*[@resource-id='com.ss.android.article.lite:id/b_'][@clickable='true']")
except BaseException as e:
swipeUp(driver, 2000, 1)
news = selectNews(driver)
return news
# 阅读新闻
def readNew(driver):
print("阅读消息......")
news = selectNews(driver)
for index, item1 in enumerate(news):
try:
it=item1.find_element_by_class_name("android.widget.TextView")
print(it.text)
item1.click()
sleep(6)
try:
gbBtn = driver.find_element_by_id("com.ss.android.article.lite:id/a1b")
print(gbBtn)
if (gbBtn):
sleep(20)
driver.keyevent(4)
sleep(5)
except Exception:
print("未获取到文字关闭按钮......")
try:
gbBtn = driver.find_element_by_id("com.ss.android.article.lite:id/w6")
print(gbBtn)
if (gbBtn):
sleep(20)
driver.keyevent(4)
sleep(5)
except Exception:
print("未获取到视频关闭按钮......")
except Exception as e:
print("获取新闻信息异常......")
print(e)
#输出当前界面的Activity
print(driver.current_activity)
#等待几面完全加载完成
driver.wait_activity("com.ss.android.article.lite.activity.SplashActivity",10)
# 获取新闻分类标题
header = driver.find_element_by_id("com.ss.android.article.lite:id/a5w")
list = header.find_elements_by_class_name("android.widget.TextView")
# 找到标题元素 循环点击
for index, item in enumerate(list):
print(item.text)
item = list[index]
# 然后开始查找新闻列表
# 阅读新闻函数 # 每个分类阅读的页数
pageNum = 0
while (pageNum < 10):
readNew(driver)
swipeUp(driver, 2000, 1)
pageNum += 1
print(list)
driver.quit()
版权声明:本文标题:Appium+Android SDK自动阅读今日头条极速版新闻 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1729881874a1216022.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论