RemoteWebDriver 在 Java 中成功连接,但在 C# 中未成功连接

RemoteWebDriver connects successfully in Java but not in C#

我正在使用 RemoteWebDriver 进行测试,当我 运行 以下 Java 代码时,一切正常。

driver = new RemoteWebDriver(new URL("http://10.0.1.10:4444"),
            new DesiredCapabilities());

当我 运行 以下 C# 代码时,我从 RemoteWebDriver.StartSession()

得到一个 ClassCastException(无法将字符串转换为字典)
driver = new RemoteWebDriver(new Uri("http://10.0.1.10:4444/wd/hub"), 
            new DesiredCapabilities());

我也试过使用 DesiredCapabilities.Safari() 得到了相同的结果,请问有什么地方出了问题吗?

试试这个

  System.Uri uri = new System.Uri("http://localhost:7055/hub");
  WebDriver = new RemoteWebDriver(uri, DesiredCapabilities.Firefox());

或这个

  System.Uri uri = new System.Uri("http://10.0.1.10:4444/wd/hub");
  WebDriver = new RemoteWebDriver(uri, DesiredCapabilities.Firefox());

这个问题很奇怪,WebDriver的C#实现似乎比Java(和Python)的实现更严格。似乎 C# 实现检查 HTTP 响应是否将内容类型设置为 JSON,Java 和 Python 对应方只是尝试解析并仅在出现问题时才抱怨。元素的 id 需要被格式化为字符串,否则你会得到另一个类似的异常;同样,对于 Java 和 Python 实现来说,这不是真的,而且 C# 似乎不允许使用复合 class 名称定位元素。

为了解决这个问题,我不得不修改我使用的 WebDriver 的实现来适应这些差异。