请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

用xpath获取toast提示时,发现不管我传入的message是什么,都可以捕获到

您好,我用xpath获取toast提示时,发现不管我传入的message是什么,都可以捕获到图片描述
比如上面这段代码,我传入的参数是“MyName”,我直接点击登录按键弹出toast提示是“请输入账号”,但是竟然可以匹配到MyName这个文本,返回True……我发现随便输入message都能匹配到

正在回答 回答被采纳积分+3

3回答

Well_D 2019-05-13 11:33:32

你好,我也碰到了这个问题,不论我输入的toast文本内容是什么,都会给我返回true,看了这个回答,我还是没搞清楚,这是什么原因导致的,能详细解释一下么

0 回复 有任何疑惑可以回复我~
  • Well_D #1
    msg_1 = "再按一次退出腾讯新闻"
    toast_match = (By.XPATH,"//*[contains(@text,msg_1)]")
    这个写法应该是不对的,toast_match里是引用不到msg_1的值的
    回复 有任何疑惑可以回复我~ 2019-05-13 11:37:46
提问者 慕粉1224429473 2018-12-02 11:24:55

问题解决了,首先传入msg的写法这么写就可以捕获到toast提示,

msg_1 = "再按一次退出腾讯新闻"
toast_match = (By.XPATH,"//*[contains(@text,msg_1)]")

如果按着下面的写法就无法捕获到toast提示,

msg_1 = "再按一次退出腾讯新闻"
toast_match = (By.XPATH,"//*[contains(@text,'+msg_1+')]")

区别就在于传递参数msg_1的写法,还有一个就是并不是所有点击显示几秒消失的都是toast,之前用自动化测试手机qq轻聊版,它那个登陆错误提示就不是toast,应该是一个image view之类的,所以捕获不到text

0 回复 有任何疑惑可以回复我~
Mushishi 2018-11-18 08:45:56

哈哈,这是奇葩的过程,你好,你使用ec这个方法 系统只会判断你这个页面的dom中是否有这个元素,而不会关心你这个元素是否显示。你可以给更换成visible的这个方法。

0 回复 有任何疑惑可以回复我~
  • 提问者 慕粉1224429473 #1
    您好,我分别使用EC.visibility_of_elements_located和EC.visibility_of_any_elements_located方法都不行,比如抛开匹配toast这个需求,仅仅是想通过这个方法匹配一下当前页面是否存在元素a,我输入任何文本都返回true……也就根本没办法达到检测页面是否含有元素a的目的了
    回复 有任何疑惑可以回复我~ 2018-12-01 18:45:26
  • 提问者 慕粉1224429473 #2
    比如我在登录页面使用匹配toast提示这个方法,输入文本“异形大战铁血战士”,结果都返回True……按理说这个页面是根本不可能存在这个元素的
    回复 有任何疑惑可以回复我~ 2018-12-01 18:50:10
  • Mushishi 回复 提问者 慕粉1224429473 #3
    你需要看你元素是需要找到是加载了还是显示,visible是显示,那么就必须肉眼可见,如果any就是加载,这个不一定能见到
    回复 有任何疑惑可以回复我~ 2018-12-02 15:50:33
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信