先上代码

# -*- coding: utf-8 -*-
from appium import webdriver
desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '4.4.2'
desired_caps['deviceName'] = 'wybtest'
desired_caps['appPackage'] = 'com.weizq'
desired_caps['appActivity'] = '.activity.LoginActivity'

driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

textfield = driver.find_elements_by_class_name("android.widget.EditText")
textfield[0].send_keys("username")
textfield[1].send_keys("111222")
driver.find_element_by_id("com.weizq:id/login_btn").click()

新手小白一枚,在学习的过程中遇到这样一个问题,我想在 APP 界面执行一个登陆的操作,脚本输入用户名和密码后键盘会自动弹出来,把登陆按钮遮挡住了。界面如下:

我再使用 driver.find_element_by_id("com.weizq:id/login_btn").click() 这行命令的时候就会报错 selenium.common.exceptions.NoSuchElementException: Message: An element could not be located on the page using the given search parameters.
我自己 google 了一下,在 stack overflow 上给的解释是把 ID 替换成 “package+id”,可是我的代码里用的就是 “package+id”,仍然报了这个错,请大神指点迷津。


非常感谢大神们的解答,问题解决了好开心_^


↙↙↙阅读原文可查看相关链接,并与作者交流