所以我想运行一些Selendroid测试。 我跑
java -jar selendroid-standalone-0.17.0-with-dependencies.jar -aut app-debug.apk
Selendroid说:
selendroid-standalone服务器已在端口上启动:4444
接下来我运行这个Python程序:
import unittest
from selenium import webdriver
class FindElementTest(unittest.TestCase):
def setUp(self):
desired_capabilities = {'aut': 'as.corbin.testapp:1.0'}
self.driver = webdriver.Remote(
desired_capabilities=desired_capabilities
)
self.driver.implicitly_wait(30)
def test_find_element_by_id(self):
self.driver.get('and-activity://as.corbin.testapp.MainActivity')
self.assertTrue("and-activity://MainActivity" in self.driver.current_url)
my_text_field = self.driver.find_element_by_id('myid')
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()
Selendroid的输出是:
信息:正在重试请求{} - > http://localhost:8080 Dez 10, 2015 8:42:38 am org.apache.http.impl.client.DefaultHttpClient tryExecute
信息:I / O异常(java.net.SocketException) 在处理{} - > http://localhost:8080的请求时遇到: 连接重置Dez 10,2015 8:42:38 AM org.apache.http.impl.client.DefaultHttpClient tryExecute INFORMATION: 重试请求{} - > http://localhost:8080 Dez 10,2015 8:42:38 AM io.selendroid.android.impl.AbstractDevice isSelendroidRunning
SCHWERWIEGEND:获取状态时出错:java.net.SocketException: 连接重置Dez 10,2015 8:42:38 AM io.selendroid.server.handler.CreateSessionHandler句柄 SCHWERWIEGEND:创建新会话时出错:启用Selendroid服务器 设备在20秒后没有出现:
Selendroid尝试连接到这里的服务是什么? jar名称表示“独立”,instructions仅提及启动此jar。
我错过了什么?
答案 0 :(得分:0)
答案是这是一个红鲱鱼,你的测试将在这个错误的情况下运行。有时您会看到端口号也在不断变化。例如,我刚刚使用python-selenium
运行了一组测试,错误已经完全改为
INFO: I/O exception (java.net.SocketException)
caught when processing request to {}->http://localhost:8081: Connection reset
Jun 08, 2016 12:55:58 PM org.apache.http.impl.execchain.RetryExec execute
但我的测试已执行。
对于那些因谷歌因为某些无法解释的原因而未能运行而从谷歌登陆的人(并且唯一的错误是上面的那个)。请注意,如果您在硒外的设备上安装应用程序,则可能无法测试。请卸载它
adb uninstall my.app.name
然后在进行测试之前重启硒。