Selendroid无法连接到Selendroid服务器,假设它没有运行

2024-09-24 22:22:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用selendroid在浏览器中自动执行一些操作。我设法让服务器启动了。如果我转到http://localhost:4444/wd/hub/status,下面是响应

{"value":{"os":{"name":"Linux","arch":"amd64","version":"4.6.4-1-ARCH"},"build":{"browserName":"selendroid","version":"0.17.0"},"supportedDevices":[{"emulator":false,"screenSize":"(480, 800)","serial":"47900eb4d5dc9100","platformVersion":"17","model":"GT-I8200","apiTargetType":"google"}],"supportedApps":[{"mainActivity":"io.selendroid.androiddriver.WebViewActivity","appId":"io.selendroid.androiddriver:0.17.0","basePackage":"io.selendroid.androiddriver"}]},"status":0}

显示设备也被识别。我用的是真正的电话,通过USB连接。 一切看起来都很好,但是当我启动测试脚本时,手机会启动应用程序,但是selendroid服务器显示它无法连接。在

selendroid的输出如下所示。还有更多,但这是从这里开始的。在

^{pr2}$

如果我让它继续运行,它只是停留在一个循环中,不断显示错误,可能是试图重新连接。在

我使用的是最新的selendroid版本,selendroid-standalone-0.17.0-with-depende,从他们的网站:http://selendroid.io

我正在运行的测试脚本是用python编写的。这里是:

#!/bin/python2.7

import unittest
from selenium import webdriver

class FindElementTest(unittest.TestCase):

    def setUp(self):
        d = webdriver.DesiredCapabilities.ANDROID
        print d
        self.driver = webdriver.Remote(
            desired_capabilities=d
        )
        self.driver.implicitly_wait(30)

    def test_find_element_by_id(self):
        self.driver.get('and-activity://io.selendroid.testapp.HomeScreenActivity')
        self.assertTrue("and-activity://HomeScreenActivity" in self.driver.current_url)
        my_text_field = self.driver.find_element_by_id('my_text_field')
        my_text_field.send_keys('Hello Selendroid')

        self.assertTrue('Hello Selendroid' in my_text_field.text)

    def tearDown(self):
        self.driver.quit()

if __name__ == '__main__':
    unittest.main()

我的操作系统是archbang,Linux archbang 4.6.4-1-ARCH。在

如有任何建议,我们将不胜感激

编辑

我又向前迈了一步。看起来像是用app参数集启动selendroid,如下所示:

java -jar selendroid-standalone-0.17.0-with-dependencies.jar -app selendroid-test-app-0.17.0.apk

在python测试脚本中更改所需的功能,如下所示:

desired_capabilities = {'aut': 'io.selendroid.testapp'}

让我更进一步。 我使用androidsdk附带的aapt工具得到了aut。下面是我使用的命令:

./aapt dump badging ~/Desktop/selendroid/selendroid-test-app-0.17.0.apk

现在,我的手机弹出家庭活动,以前没有。不过,我仍然在selendroid服务器上得到错误,同样的错误。在


Tags: textioself服务器脚本appfieldmy