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 的实现来适应这些差异。
我正在使用 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 的实现来适应这些差异。