2017-03-25 30 views
0

我正在尝试使用appium进行webapp测试。我能够启动Chrome浏览器,但它显示“数据”;强似URL(http://google.com)和Chrome正逐渐接近它发生两次/三次,得到的异常说SessionNotCreated 这里是我的代码无法在appium中通过URL进行webapp测试

public class Test_webApp { 
       @Test 
       public void test() throws MalformedURLException{ 
       DesiredCapabilities cap = new DesiredCapabilities(); 
        cap.setCapability(MobileCapabilityType.PLATFORM_NAME,MobilePlatform.ANDROID); 
        //cap.setCapability(MobileCapabilityType.DEVICE_NAME,"Android Emulator"); 
        cap.setCapability(MobileCapabilityType.BROWSER_NAME,"Chrome"); 
        cap.setCapability(MobileCapabilityType.DEVICE_NAME,"Android Device"); 
        cap.setCapability(MobileCapabilityType.PLATFORM_VERSION,"4.4.2"); 
        AndroidDriver <AndroidElement> driver = new AndroidDriver <AndroidElement> (new URL("http://127.0.0.1:4723/wd/hub"),cap); 
        driver.manage().timeouts().implicitlyWait(100, TimeUnit.SECONDS); 
        driver.get("http://google.com"); 
         driver.manage().timeouts().implicitlyWait(100, TimeUnit.SECONDS); 
        System.out.println("Check device google chrome is opened"); 
       } 

    } 

我加入了这一点,但得到同样的错误

String exePath = "D:/mobile_testing/eclipse/chromedriver_win32/chromedriver.exe"; 
         System.setProperty("webdriver.chrome.driver", exePath); 

我我在Eclipse控制台获得此异常

java.net.SocketException: Software caused connection abort: socket write error 
    at java.net.SocketOutputStream.socketWrite0(Native Method) 
    at java.net.SocketOutputStream.socketWrite(Unknown Source) 
    at java.net.SocketOutputStream.write(Unknown Source) 
    at java.io.ObjectOutputStream$BlockDataOutputStream.drain(Unknown Source) 
    at java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode(Unknown Source) 
    at java.io.ObjectOutputStream.<init>(Unknown Source) 
    at org.testng.remote.strprotocol.SerializedMessageSender.sendMessage(SerializedMessageSender.java:24) 
    at org.testng.remote.strprotocol.MessageHub.sendMessage(MessageHub.java:44) 
    at org.testng.remote.strprotocol.RemoteTestListener.onTestFailure(RemoteTestListener.java:72) 
    at org.testng.internal.Invoker.runTestListeners(Invoker.java:1895) 
    at org.testng.internal.Invoker.runTestListeners(Invoker.java:1879) 
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:778) 
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901) 
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231) 
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127) 
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111) 
    at org.testng.TestRunner.privateRun(TestRunner.java:767) 
    at org.testng.TestRunner.run(TestRunner.java:617) 
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:334) 
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329) 
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291) 
    at org.testng.SuiteRunner.run(SuiteRunner.java:240) 
    at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) 
    at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) 
    at org.testng.TestNG.runSuitesSequentially(TestNG.java:1198) 
    at org.testng.TestNG.runSuitesLocally(TestNG.java:1123) 
    at org.testng.TestNG.run(TestNG.java:1031) 
    at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:111) 
    at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:204) 
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:175) 
java.net.SocketException: Software caused connection abort: socket write error 
    at java.net.SocketOutputStream.socketWrite0(Native Method) 
    at java.net.SocketOutputStream.socketWrite(Unknown Source) 
    at java.net.SocketOutputStream.write(Unknown Source) 
    at java.io.ObjectOutputStream$BlockDataOutputStream.drain(Unknown Source) 
    at java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode(Unknown Source) 
    at java.io.ObjectOutputStream.<init>(Unknown Source) 
    at org.testng.remote.strprotocol.SerializedMessageSender.sendMessage(SerializedMessageSender.java:24) 
    at org.testng.remote.strprotocol.MessageHub.sendMessage(MessageHub.java:44) 
    at org.testng.remote.strprotocol.RemoteTestListener.onFinish(RemoteTestListener.java:34) 
    at org.testng.TestRunner.fireEvent(TestRunner.java:1246) 
    at org.testng.TestRunner.afterRun(TestRunner.java:1039) 
    at org.testng.TestRunner.run(TestRunner.java:621) 
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:334) 
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329) 
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291) 
    at org.testng.SuiteRunner.run(SuiteRunner.java:240) 
    at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) 
    at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) 
    at org.testng.TestNG.runSuitesSequentially(TestNG.java:1198) 
    at org.testng.TestNG.runSuitesLocally(TestNG.java:1123) 
    at org.testng.TestNG.run(TestNG.java:1031) 
    at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:111) 
    at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:204) 
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:175) 
FAILED: test 
org.openqa.selenium.SessionNotCreatedException: A new session could not be created. (Original error: An unknown server-side error occurred while processing the command. (Original error: unknown error: Device 3a23e10 is not online 
    (Driver info: chromedriver=2.18.343845 (73dd713ba7fbfb73cbb514e62641d8c96a94682a),platform=Windows NT 10.0 x86_64))) (WARNING: The server did not provide any stacktrace information) 
Command duration or timeout: 0 milliseconds 
Build info: version: 'unknown', revision: '5234b32', time: '2017-03-10 09:00:17 -0800' 
System info: host: 'DESKTOP-N5JTJRI', ip: '192.168.0.114', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_60' 
Driver info: driver.version: AndroidDriver 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 
    at java.lang.reflect.Constructor.newInstance(Unknown Source) 
    at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:216) 
    at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:168) 
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:367) 
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:113) 
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:141) 
    at io.appium.java_client.remote.AppiumCommandExecutor.execute(AppiumCommandExecutor.java:67) 
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:604) 
    at io.appium.java_client.DefaultGenericMobileDriver.execute(DefaultGenericMobileDriver.java:42) 
    at io.appium.java_client.AppiumDriver.execute(AppiumDriver.java:1) 
    at io.appium.java_client.android.AndroidDriver.execute(AndroidDriver.java:1) 
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:244) 
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:131) 
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:144) 
    at io.appium.java_client.DefaultGenericMobileDriver.<init>(DefaultGenericMobileDriver.java:37) 
    at io.appium.java_client.AppiumDriver.<init>(AppiumDriver.java:161) 
    at io.appium.java_client.AppiumDriver.<init>(AppiumDriver.java:170) 
    at io.appium.java_client.android.AndroidDriver.<init>(AndroidDriver.java:82) 
    at Test_webApp.test(Test_webApp.java:44) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80) 
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:714) 
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901) 
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231) 
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127) 
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111) 
    at org.testng.TestRunner.privateRun(TestRunner.java:767) 
    at org.testng.TestRunner.run(TestRunner.java:617) 
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:334) 
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329) 
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291) 
    at org.testng.SuiteRunner.run(SuiteRunner.java:240) 
    at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) 
    at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) 
    at org.testng.TestNG.runSuitesSequentially(TestNG.java:1198) 
    at org.testng.TestNG.runSuitesLocally(TestNG.java:1123) 
    at org.testng.TestNG.run(TestNG.java:1031) 
    at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:111) 
    at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:204) 
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:175) 

回答

0

首先改变这一行

String exePath = "D:/mobile_testing/eclipse/chromedriver_win32/chromedriver.exe"; 

这一行

String exePath = "D://mobile_testing//eclipse//chromedriver_win32//chromedriver.exe"; 

因为一个字符串,所以你需要使用转义序列/识别为特殊字符。

+0

我试过这个,但它不起作用 – monil

+0

我认为你的浏览器与你的appium服务器版本不兼容。请让我知道你的chrome版本和appium服务器版本。 –

+0

我在移动设备和桌面上使用chrome版本56.0.2924.87(64位)。我使用支持chrome 55-57的chrome驱动程序“ChromeDriver 2.28”。我也觉得它是使用chrome驱动程序的问题。因为早些时候问题我正在桌面上。而当我改变我的铬驱动程序(更新)脚本运行良好。但这次它不起作用。 版本: appium:早期1.4.13.1昨天更新为1.4.16.1 的java:1.8 ChromeDriver 2.28 Chrome版本56.0.2924.87(64位),如果我错过了什么,请让我knowand提供我从那里的链接我可以下载它。谢谢 – monil

相关问题