• 赞赞赞

  • 1.你可以看一下你的 adb server 是否启动了:adb start-server
    2.看一下你的设备是否是在线状态:adb devices,当计算机启动的服务进程大于 64 的时候,设备就会处于离线状态了
    3.如果使用的是 Selection,手机的系统版本就没有问题了,如果不是,请确保系统是 4.1 以上的

  • spikeshen 6 楼 恩,我测试的时候好像是不支持汉字,打印出来的是乱码,有待尝试哈

  • 这个是配置好的了,你在浏览器上打不开这个网页,但是在 server 端可以接收到 404 的错误提示,你可以连接一个 4.2 后以上的手机,测试一下自带的脚本

  • spikeshen 7 楼 貌似在 4.4 支持按键的操作时有一些问题的,但是还有待尝试

  • #guo 1 楼 是滴,目前应用来看,是按照控件的 Type 来分的

  • #lihuazhang 3 楼 是滴,而且很多地方也很不成熟,希望越来越好

  • 元素定位 at 2013年11月26日

    PATH = lambda p: os.path.abspath(
    os.path.join(os.path.dirname(file), p)
    )

    desired_caps = {}
    desired_caps['device'] = 'Android'
    desired_caps['browserName'] = ''
    desired_caps['version'] = '4.2'
    desired_caps['app'] = PATH('../../../testview/testview.apk')
    desired_caps['app-package'] = 'com.example.android.testview'
    desired_caps['app-activity'] = '.testview'

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

    el = driver.find_element_by_id("test_view")
    el.click()

    driver.quit()

  • @seveniruby @monkey
    在元素定位时,通过 id 进行定位,在 id 的名称中支持下划线吗?如果支持为什么通过 monitor 获得的 id 不能找到呢?

  • #38 楼 seveniruby 这个问题解决了,是因为我用了代理上网,把代理关掉就 OK 了

  • rabbit 33 楼 , seveniruby 34 楼 , 我的环境遇到了这个问题:是什么原因呢?各位大神遇到没呢
    1、直接用 F5 运行:
    Traceback (most recent call last):
    File "D:\appium-0.11.3\sample-code\examples\python\android_contacts.py", line 13, in
    desired_caps['app'] = PATH('../../../sample-code/apps/ContactManager/ContactManager.apk')
    File "D:\appium-0.11.3\sample-code\examples\python\android_contacts.py", line 6, in
    os.path.join(os.path.dirname(file), p)
    NameError: global name 'file' is not defined

    2、用命令行运行:
    Traceback (most recent call last):
    File "android_contacts.py", line 17, in
    driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
    File "D:\Python27\lib\site-packages\selenium-2.37.2-py2.7.egg\selenium\webdriver\remote\webdriver.py", line 71, in init
    self.start_session(desired_capabilities, browser_profile)
    File "D:\Python27\lib\site-packages\selenium-2.37.2-py2.7.egg\selenium\webdriver\remote\webdriver.py", line 113, in start_session
    'desiredCapabilities': desired_capabilities,
    File "D:\Python27\lib\site-packages\selenium-2.37.2-py2.7.egg\selenium\webdriver\remote\webdriver.py", line 164, in execute
    self.error_handler.check_response(response)
    File "D:\Python27\lib\site-packages\selenium-2.37.2-py2.7.egg\selenium\webdriver\remote\errorhandler.py", line 136, in check_response
    raise exception_class(value)
    selenium.common.exceptions.WebDriverException: Message: '<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtdn">\\n<!-- FileNam
    e: index.html\n Language: [en]\n-->\n<!--Head-->\n\n \n\n<!--\ntd {\n\t\xe3\x80\x80color:#666666;font-size:12px; f
    ont-family:Verdana, Arial, Helvetica, sans-serif; \n}\nbody {\n\tbackground-color: #999999;\n}\n.STYLE1 {color: #666666}\n.style8 {\tFONT-WEIGHT: bold\n}\n.style9 {color: #555555}\n\n-->\n\n\n
    \n \xe4\xb8\x9c\xe8\xbd\xafInternet\xe8\xae\xbf\xe9\x97\xae\xe7\xae\xa1\xe7\x90\x86\xe9\xa1\xb5\n \n \n\n<!--/Head-->\n
    <!--Body-->\n\n

    \n \n \n \n
    \n<!--Logo-->\n\n \
    n \n \n
    \n \n
    \n<!--/Logo-->\n<!--Contents-->\n<!-- FileName: a
    uthenticationrequired.html\n Language: [en]\n-->\n<!--Title-->\n\n \n \n \n
    leData\'>\n authen required!\n
    \n<!--/Title-->\n\n<!--Content-->\n\n \n \n \n
    \n please supply username and pas
    sword!\n
    \n<!--/Content-->\n\n<!--Info-->\n\n \n \n \n
    \n URL: http://127.0.0.1:4723/wd/hub/session
    \n
    User name:
    \n
    \n<!--/Info-->\n<!--/Contents-->\n<!--Policy-->\n\n \n \n \n \n \n \n \n\n\n \n\n \n
    \n
    \n \xe4\xb
    8\x9c\xe8\xbd\xafInternet\xe8\xae\xbf\xe9\x97\xae\xe7\xae\xa1\xe7\x90\x86\xe5\x8a\x9e\xe6\xb3\x95\n
    \n1. \xe5\xbc\x80\xe6\x94\xbe\xe4\xbf\xa1
    \xe6\x81\xaf\xe7\xa7\x91\xe6\x8a\x80\xe3\x80\x81\xe5\x95\x86\xe4\xb8\x9a\xe4\xb8\x8e\xe7\xbb\x8f\xe6\xb5\x8e\xe3\x80\x81\xe6\x96\xb0\xe9\x97\xbb\xe4\xb8\x8e\xe5\xaa\x92\xe4\xbd\x93\xe3\x80\x81\xe6\x90
    \x9c\xe7\xb4\xa2\xe5\xbc\x95\xe6\x93\x8e\xe4\xb8\x8e\xe9\x97\xa8\xe6\x88\xb7\xe3\x80\x81\xe6\x94\xbf\xe5\xba\x9c\xe3\x80\x81\xe6\x95\x99\xe8\x82\xb2\xe3\x80\x81\xe5\x81\xa5\xe5\xba\xb7\xe3\x80\x81\xe4
    \xba\xa4\xe9\x80\x9a\xe7\xad\x89\xe7\xb1\xbb\xe5\x88\xab\xef\xbc\x9b\n
    \n2. \xe7\xa6\x81\xe6\xad\xa2\xe8\xb5\x8c\xe5\x8d\x9a\xe3\x80\x81\xe6\x88\x90\xe4\
    xba\xba\xe3\x80\x81\xe5\xba\xb8\xe4\xbf\x97\xe3\x80\x81\xe6\x9a\xb4\xe5\x8a\x9b\xe3\x80\x81\xe7\xbd\x91\xe7\xbb\x9c\xe8\x81\x8a\xe5\xa4\xa9\xe3\x80\x81\xe9\x87\x91\xe8\x9e\x8d\xe4\xbf\xa1\xe6\x81\xaf\
    xe4\xb8\x8e\xe6\x9c\x8d\xe5\x8a\xa1\xe3\x80\x81\xe5\xae\x97\xe6\x95\x99\xe3\x80\x81\xe6\xb1\x82\xe8\x81\x8c\xe3\x80\x81\xe5\xa8\xb1\xe4\xb9\x90\xe3\x80\x81\xe6\x97\xb6\xe5\xb0\x9a\xe4\xb8\x8e\xe7\x94\
    x9f\xe6\xb4\xbb\xe3\x80\x81\xe6\xb5\x81\xe5\xaa\x92\xe4\xbd\x93\xe3\x80\x81Webmail\xe3\x80\x81Blog\xe7\xad\x89\xe7\xb1\xbb\xe5\x88\xab\xef\xbc\x9b\xe7\xa6\x81\xe6\xad\xa2\xe9\x80\x9a\xe8\xbf\x87\xe4\x
    bb\xa3\xe7\x90\x86\xe8\xae\xbf\xe9\x97\xae\xe5\x85\xac\xe5\x8f\xb8\xe5\x86\x85\xe7\xbd\x91\xe8\xb5\x84\xe6\xba\x90\xef\xbc\x9b \n\n
    \n3. \xe4\xb8\xb
    a\xe6\xbb\xa1\xe8\xb6\xb3\xe5\x91\x98\xe5\xb7\xa5\xe7\x89\xb9\xe6\xae\x8a\xe9\x9c\x80\xe6\xb1\x82\xef\xbc\x8c\xe5\x85\xac\xe5\x8f\xb8\xe6\x8f\x90\xe4\xbe\x9b\xe7\xbd\x91\xe7\xab\x99\xe5\xbc\x80\xe9\x8
    0\x9a\xe7\x9a\x84\xe6\xb5\x81\xe7\xa8\x8b\xef\xbc\x8c\xe5\x85\xb7\xe4\xbd\x93\xe8\xaf\xb7\xe5\x8f\x82\xe8\xa7\x81web.neusoft.com->\xe6\x9c\x8d\xe5\x8a\xa1\xe5\xb9\xb3\xe5\x8f\xb0->IT\xe6\x9c\x8d\xe5\x
    8a\xa1\xe7\xae\xa1\xe7\x90\x86 \xe5\x8f\x91\xe5\xb8\x83\xe7\x9a\x84\xe6\xb5\x81\xe7\xa8\x8b\xe5\x92\x8c\xe8\xa1\xa8\xe6\xa0\xbc\xe3\x80\x82\n
    \n<!--/Policy-->\n<!--Fo
    ot-->\n\n \n \n \n \n \n \n \n \n \n
    \n \xe4\xbf\xa1\xe6\x81\xaf\xe8\xa7\x84\xe5\x88\x92\xe4\xb8\x8e\xe7\xae\xa1\xe7\x90\x86\xe9\x83\xa8\xef\xbc\x8c\xe6\xb2
    \x88\xe9\x98\xb3\xe5\x9b\xad\xe5\x8c\xbaA2\xe6\xa5\xbc231\xe6\x88\xbf\xe9\x97\xb4 \xe9\x82\xae\xe4\xbb\xb6\xef\xbc\x9aipm@neusoft.com\n
    \n
    \xe7\x94\xb5\xe8\xaf\x9d\xef\xbc\x9a+86-24-83665512\xe3\x80\x80\xe3\x80\x80\xe4\xbc\xa0\xe7\x9c\x9f\xef\xbc\x9a+86-24-83669548 \n
    lor="#0088cc" style="font-size:12px">\n \n \n\t\t\t\n\n
    \n<!--/Foot-->\n
    \n\n<!--/Body-->\n\n'

  • 3 楼 lizhenghuan 现在的 Robotium 是不是也支持 WebDriver 的协议了呢??

  • #4 楼 monkey 能否写个例子给点参考呢?

  • #3 楼 lizhenghuan Robotium 的局限性在哪里呢?它的局限性 Appium 是否有扩展呢?

  • 还有一个问题:Appium 可以搭建一个一次执行多个 Python 脚本的框架吗?

  • @ #25 楼 lihuazhang @#32 楼 seveniruby @#33 楼 rabbit 感谢大家的热心帮忙,尤其感谢 #33 楼 rabbit ,利用休息时间帮我弄环境,现在总结一下我的心得:
    1、下载 AppiumForWindows 版本,也要在线安装 WedDriver,即执行:npm install wd。
    2、sample 所在的文件夹的名字不要有空格,否则会显示找不到 APK
    3、windows 上的 Android 模拟器运行起来太慢了,导致会长时间接收不到指令,server 端会死掉

  • 在运行 Python 文件的时候,遇到这样的问题:

    F:\Program Files>python appium-0.11.3\appium-0.11.3\sample-code\examples\python\
    android_contacts.py
    Traceback (most recent call last):
    File "appium-0.11.3\appium-0.11.3\sample-code\examples\python\android_contacts
    .py", line 17, in
    driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
    File "F:\Program Files\python\lib\site-packages\selenium-2.37.2-py3.3.egg\sele
    nium\webdriver\remote\webdriver.py", line 71, in init
    self.start_session(desired_capabilities, browser_profile)
    File "F:\Program Files\python\lib\site-packages\selenium-2.37.2-py3.3.egg\sele
    nium\webdriver\remote\webdriver.py", line 113, in start_session
    'desiredCapabilities': desired_capabilities,
    File "F:\Program Files\python\lib\site-packages\selenium-2.37.2-py3.3.egg\sele
    nium\webdriver\remote\webdriver.py", line 162, in execute
    response = self.command_executor.execute(driver_command, params)
    File "F:\Program Files\python\lib\site-packages\selenium-2.37.2-py3.3.egg\sele
    nium\webdriver\remote\remote_connection.py", line 355, in execute
    return self._request(url, method=command_info[0], data=data)
    File "F:\Program Files\python\lib\site-packages\selenium-2.37.2-py3.3.egg\sele
    nium\webdriver\remote\remote_connection.py", line 402, in _request
    response = opener.open(request)
    File "F:\Program Files\python\lib\urllib\request.py", line 469, in open
    response = self._open(req, data)
    File "F:\Program Files\python\lib\urllib\request.py", line 487, in _open
    '_open', req)
    File "F:\Program Files\python\lib\urllib\request.py", line 447, in _call_chain

    result = func(*args)
    File "F:\Program Files\python\lib\urllib\request.py", line 1268, in http_open
    return self.do_open(http.client.HTTPConnection, req)
    File "F:\Program Files\python\lib\urllib\request.py", line 1253, in do_open
    r = h.getresponse()
    File "F:\Program Files\python\lib\http\client.py", line 1143, in getresponse
    response.begin()
    File "F:\Program Files\python\lib\http\client.py", line 354, in begin
    version, status, reason = self._read_status()
    File "F:\Program Files\python\lib\http\client.py", line 324, in _read_status
    raise BadStatusLine(line)
    http.client.BadStatusLine: ''

    请问这是什么原因呢?

  • #20 楼 rabbit 我运行 python 的脚本时,出现了 ImportError: No module named 'selenium',难道 selenium 还需要自己下载安装吗?

  • #17 楼 rabbit 我运行了 Appium.exe,但是在对话框下面并没有 Nodejs 的那个框,检查了一下 nodejs 确实安装上了,这是为什么呢?

  • #15 楼 rabbit 我运行了 appium,提示找不到该命令,我在想 appium 一定要使用 npm 安装吗?

  • 8 楼 @lihuazhang ,可以咨询几个问题吗?
    1、怎么启动 Appium 的 server 呢?
    2.在 windows 上一定要用 NPM 命令行安装 Appium 吗?直接点击文件夹中的 Appium.exe 不可以吗?
    3.在 Windows 安装说明里有一个运行 reset.bat 这个文件请问在那个文件里呢?
    4、安装文件中说 “要在 windows 上运行测试用例,你需要先启动 Android 模拟器或者连接上一个 API Level17 以上的 android 真机。
    然后在命令行运行 appium
    node .
    ” 这个输入 appium 是任意一个命令行还是在 Git 的命令行里呢?

  • 谢谢 seveniruby 12 楼 还会继续努力

  • 我是一个菜鸟,觉得这个工具很强大,想研究一下它,可是看了资料仍然不知道是怎么用的。

  • 现在网络不好,晚上在家头像_