我是靠谱客的博主 凶狠鸵鸟,最近开发中收集的这篇文章主要介绍appium 03-登录脚本demo 2022学习记录,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

问题:

1.问题1:报错元素定位不到

需要先等待脚本将app打开之后才能找到,可以适当使用sleep来等待一段时间

更好的方案:

通过使用

 `driver.implicitly_wait(8)`

来进行隐式等待(后续学习之后发现还有显示等待,之后文章会写),参数为8代表每个组件都被将搜索8秒,若8秒搜索不到则报错抛出异常

2.问题2:登录后权限弹窗无法定位

解决方案1:通过添加两个启动参数,使用户原有数据不清楚,即可

# 以下两项配置影响是否清除登录数据(权限赋予及登录状态等):
# desired_caps['noReset'] = True
# desired_caps['fullReset'] = False

解决方案2:通过自动处理权限弹窗的方法解决

def permission_choose_fun2(driver, number):
# 权限弹框处理
for i in range(number):
loc = ("xpath", "//*[@text='允许']")
try:
e = WebDriverWait(driver, 1, 0.5).until(EC.presence_of_element_located(loc))
e.click()
except:
pass

全部demo代码: 

import time
from appium import webdriver
from appium.webdriver.common.appiumby import AppiumBy
# For W3C actions
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.actions import interaction
from selenium.webdriver.common.actions.action_builder import ActionBuilder
from selenium.webdriver.common.actions.pointer_input import PointerInput
# appium server的ip
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
server_ip = "http://127.0.0.1:4723/wd/hub"
desired_caps = {
"platformName": "Android",
"appium:platformVersion": "7.1.2",
"appium:deviceName": "127.0.0.1:62001",
#测试不影响可以乱写
"appium:appPackage": "com.yw.oa",
"appium:appActivity": ".MainActivity",
}
# 以下两项配置影响是否清除登录数据(权限赋予及登录状态等):
# desired_caps['noReset'] = True
# desired_caps['fullReset'] = False
driver = webdriver.Remote(server_ip, desired_caps)
time.sleep(5)
el1 = driver.find_element(by=AppiumBy.XPATH, value="/hierarchy/android.widwiup/android.view.ViewGroup/android.view.ViewGroup/android.widget.ScrollView/android.view.ViewGroup/android.view.ViewGroup[1]/android.widget.EditText")
el1.send_keys("************")
el2 = driver.find_element(by=AppiumBy.XPATH,value="/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.Fraet.Fraiewroup/android.view.ViewGroup[2]/android.widget.EditText")
el2.send_keys("*********************")
time.sleep(1)
el3 = driver.find_element(by=AppiumBy.XPATH,value="/hierarchy/android.widget.FrameLayout/android.widget.LinearLayouroup/android.widget.ScrollView/android.view.ViewGroup/android.view.ViewGroup[5]/android.view.ViewGroup")
el3.click()
# time.sleep(2)
def permission_choose_fun2(driver, number):
# 权限弹框处理
for i in range(number):
loc = ("xpath", "//*[@text='允许']")
try:
e = WebDriverWait(driver, 1, 0.5).until(EC.presence_of_element_located(loc))
e.click()
except:
pass
if __name__ == "__main__":
permission_choose_fun2(driver, 7)

最后

以上就是凶狠鸵鸟为你收集整理的appium 03-登录脚本demo 2022学习记录的全部内容,希望文章能够帮你解决appium 03-登录脚本demo 2022学习记录所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部