Appium 【已解决】appium+python 如何判断一个控件是否存在

zws20041984 · 2014年01月07日 · 最后由 zws20041984 回复于 2014年01月07日 · 2969 次阅读

现有一个电商的 APP,在提交订单时如果没有登录会出现一个登录页面,登录了就不会。现在想加入一个判断语句,先判断这个登录页面上的输入框控件是否会出现,如果出现了就执行登录,没有就直接进入下一步。
使用了 findElements,执行时提示
AttributeError: 'WebDriver' object has no attribute 'findElements'
是不是这个方法用错了呢?
部分源码:

#登录
time.sleep(10)
textfields =driver.findElements(find_elements_by_tag_name("textfield"))
if textfields.size() >0:
    textfields[0].send_keys("test@163.com")
    textfields[1].send_keys("111111")
    imageviews = driver.find_elements_by_tag_name("image")
    imageviews[0].click()
共收到 8 条回复 时间 点赞
textfields =driver.findElements(find_elements_by_tag_name("textfield"))

这句不正确
应该是

textfields =driver.find_elements_by_tag_name("textfield"))

另外:

if textfields.size() >0:

应该是

if len(textfields) > 0:

#2 楼 @xiaomayi0323 写成

textfields =driver.find_elements_by_tag_name("textfield")
if len(textfileds) >0:

后提示
NameError: name 'textfileds' is not defined

找不到这个控件

#3 楼 @zws20041984 。。。你上头是 textfields 下面是 textfileds。而且报错是这个变量没声明,跟控件有啥关系。。。

#4 楼 @spikeshen 啊,眼花了,看了几次也没看出问题来,改过来就成了,多谢。

现要判断一个控件是否存在,是根据它的 len 来。
如果要判断是否进入了一个页面,是找这个页面上特有的控件在不在吗?还有其它方法没?

#6 楼 @zws20041984 恩。。。目前我没发现有,不像 selenium,可以取 url 来判断。不过本身这么找也没错,是否进入某个场景,肯定是要有该场景的某个属性或者说特性来作为判断条件的。

+ 通过 currentActivity()不可以吗

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