【发布时间】:2016-09-12 10:07:53
【问题描述】:
我想使用 C# 以编程方式启动 Appium 服务器。 当我使用 Appium 窗口手动启动 Appium 时,它启动成功:
但是当我自动运行它时,我经常会遇到异常:
"An unhandled exception of type 'OpenQA.Selenium.WebDriverException' occurred in WebDriver.dll
Additional information: Unexpected error. System.Net.WebException: Unable to connect to the remote server ---> System.Net.Sockets.SocketException: No connection could be made because the target machine actively refused it 127.0.0.1:4723"
这是启动Appium Server的c#代码:
System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName = "C:/Program Files (x86)/Appium/node.exe";
startInfo.Arguments = @"""C:/Program Files (x86)/Appium/node.exe lib/server/main.js"" --address 127.0.0.1 --port 4723 --session-override --platform-name Android --platform-version 23 --automation-name Appium --log-no-color";
process.StartInfo = startInfo;
process.Start();
capabilities = new DesiredCapabilities();
capabilities.SetCapability("deviceName", "Samsung S6");
capabilities.SetCapability("platformName", "Android");
capabilities.SetCapability("platformVersion", "5.0.2");
capabilities.SetCapability(CapabilityType.BrowserName, "Chrome");
driver = new RemoteWebDriver(new Uri("http://127.0.0.1:4723/wd/hub"), capabilities, TimeSpan.FromSeconds(30));
我阅读了这些问题,但对我没有帮助:
Appium iOS automation using C#/Visual Studio No connection could be made because the target machine actively refused it 127.0.0.1:3446
为什么我启动的时候是手动 Appium 启动成功,但是当我以同样的方式启动时却被拒绝了?
【问题讨论】:
-
我在 ruby 中做到了这一点,现在当我开始我的 rspec 测试时,它会启动 appium,并在测试运行后将其杀死。不确定它是否有帮助,但如果你愿意,我可以用我的代码发布答案。这个错误是因为appium已经运行了,你可以调用
killall node杀死它,如果它是一台mac机器,你必须在测试后输入代码来杀死appium,这样你就不会再遇到这个问题了 -
是的,如果你能发布你的代码,谢谢