Appium 用 appium 做安卓 的 UI 自动化的时候会有 toast 提示 怎么去定位这个 toast 元素 抓取上面的信息

test_lj · 2018年04月18日 · 最后由 yajunzheng 回复于 2018年09月05日 · 1595 次阅读

各位大神,本人刚学 appium,碰到以下问题,希望大神们能帮忙解决。多谢。

想要定位到 toast 那个 “手机密码不能为空”

代码如下:
# 错误信息提示
login_error_mess= (By.ID,"unionbon.ylb.let:id/message")

def login_error_hint(self):
return self.find_element(*self.login_error_mess).text

错误信息如下:

发现找不到页面上的元素,是因为这个 toast 显示的时间太短了吗?请大神们赐教。

共收到 10 条回复 时间 点赞

你是要判断具体的失败原因吗? 没有这个必要,你只要判断用户名或密码错误的时候,不能登录就可以了

田超 回复

也要判断返回的提示语对不对。
如果是判断不能登录,是根据什么来判断?

根据页面元素判断是否登录成功,如登录成功,页面会跳转到其他页;若登录不成功,则页面还在登录页,判断用户名/密码/登录按钮中的某个元素是否存在,存在说明不成功

appium 用 uiautomator2 可以定位 toast,用 xpath,xpath=//*[contains(@text,'手机号或密码xxxx')]

test_lj 回复

自动化测试不能用功能测试的思想来做,自动化最多的是用来验证主要流程,对于界面布局以及显示,能做的很有限

雨夜狂奔 回复

这个好像只支持 appium1.5 以上的,我的是 1.4.16 的。试了很久。谢谢了。

test_lj 回复

要 1.6.3 以上

笑哼 回复

现在换成了 1.6.3 的。还是不行。
运行到 driver.back() 这句就报错。

笑哼 回复

报错信息如下:
Traceback (most recent call last):
File "F:/python����/seleniumDemo1/AndroidTest/testC.py", line 55, in
driver.back() # 点返回
File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 797, in back
self.execute(Command.GO_BACK)
File "C:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 312, in execute
self.error_handler.check_response(response)
File "C:\Python27\lib\site-packages\appium\webdriver\errorhandler.py", line 29, in check_response
raise wde
selenium.common.exceptions.WebDriverException: Message: An unknown server-side error occurred while processing the command. Original error: Could not proxy. Proxy error: Could not proxy command to remote server. Original error: Error: read ECONNRESET

Process finished with exit code 1

田超 回复

我想实现的就是在有用户名和密码提示的时候进行截图,这样怎么实现呀,求赐教呀,谢谢

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册