新人刚开始学习用 C# 搭配 Appium 在移动端测试,但是一开始就被卡住了。遇到的问题是在 visual studio 里运行测试的时候一直返回下面的报错

Message: System.InvalidOperationException : An unknown server-side error occurred while processing the command. Original error: Failed to start Chromedriver session: An unknown server-side error occurred while processing the command. Original error: unknown error: Failed to get sockets matching: @webview_devtools_remote_.*11524 (make sure the app has its WebView configured for debugging) (Driver info: chromedriver=2.46.628402 (536cd7adbad73a3783fdc2cab92ab2ba7ec361e1),platform=Windows NT 10.0.17134 x86_64)

在网上搜索了很多,大多数都是说 chromedriver 的版本不对,然后我试过了好几个版本的 chromedriver 还是一样的报错,根据 chromedriver 官网上的说明,我试过了支持 chrome v72 版本的 chromedriver 2.45, 2.46 和他们前后的好几个版本都是一样的报错,现在就是卡在这里进行不下去了。求大神帮忙看一下应该怎么解决。

移动设备:夜神 5.0.0.0 模拟器(不是最新版的,因为 5.0 版本以上的所有新版本夜神都不能在 chrome 浏览器里显示 webview)
模拟器 Android 版本:4.4.2(已开启 USB debug 模式)
Appium 版本: 1.10.0
电脑上安装的 chrome 浏览器版本:72.0.3626.96
夜神模拟器里安装的 chrome 浏览器版本:72.0.3626.105
模拟器上测试的 app: Ionic
状况大致过程:在 visual studio 里运行测试的代码,系统能找到模拟器并打开所要测试的 app,但是再接下来就出现上面的报错了。
C# 代码

using NUnit.Framework;
using OpenQA.Selenium.Appium.Android;
using OpenQA.Selenium.Appium.Enums;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Remote;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace AppiumPractice
{
    [TestFixture]
    public class TestClass
    {
        [Test]
        public void OpenAppium()
        {
            DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
            desiredCapabilities.SetCapability(MobileCapabilityType.PlatformName, "Android");
            desiredCapabilities.SetCapability(MobileCapabilityType.DeviceName, "127.0.0.1:62001");
            desiredCapabilities.SetCapability(MobileCapabilityType.App, @"K:\complete.apk");
            desiredCapabilities.SetCapability("chromedriverExecutable", @"C:\Users\whuang\chromedriver_win32\chromedriver.exe");
            ChromeOptions chromeOpt = new ChromeOptions();
            chromeOpt.AddAdditionalCapability("androidPackage", "com.android.chrome");
            AndroidDriver<AndroidElement> androidDriver = new AndroidDriver<AndroidElement>(desiredCapabilities);

            var driv = androidDriver.Contexts.First(x => x.Contains("WEBVIEW_"));
            androidDriver.Context = driv;
            androidDriver.FindElementByXPath("//span[text()='About']").Click();
        }
    }
}


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