我从selenium IDE中提取了以下代码。(c#remote control)
using System;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
using NUnit.Framework;
using Selenium;
namespace SeleniumTests
{
[TestFixture]
public class MyFirstVCTest
{
private ISelenium selenium;
private StringBuilder verificationErrors;
[Test]
public void TheNewTest()
{
selenium.Open("/");
}
[SetUp]
public void SetupTest()
{
selenium = new DefaultSelenium("localhost", 4444, "*chrome","http://demo.volunteercampaigns.com/");
selenium.Start();
verificationErrors = new StringBuilder();
}
[TearDown]
public void TeardownTest()
{
try
{
selenium.Stop();
}
catch (Exception)
{
// Ignore errors if unable to close the browser
}
Assert.AreEqual("", verificationErrors.ToString());
}
[Test]
public void TheMyFirstVCTest()
{
selenium.Open("/?AspxAutoDetectCookieSupport=1");
selenium.Click("link=Login");
selenium.WaitForPageToLoad("30000");
selenium.Type("id=ctl00_ContentPlaceHolder1_txtEmailAddress", "elonadminss@eeeorbees.com");
selenium.Type("id=ctl00_ContentPlaceHolder1_txtPassword", "orbs123");
selenium.Click("id=ctl00_ContentPlaceHolder1_btnlogin");
selenium.WaitForPageToLoad("30000");
selenium.Click("id=ctl00_lblUserName");
selenium.Click("id=ctl00_lnkSignOut");
selenium.WaitForPageToLoad("30000");
}
}
}
我创建了一个webform并在那里添加了一个按钮。
在按钮点击事件中我写了这段代码
SeleniumTests.MyFirstVCTest m = new SeleniumTests.MyFirstVCTest();
m.SetupTest();
m.TheMyFirstVCTest();
m.TeardownTest();
我包含了所有.dll文件。它运行良好(没有错误和警告)。
但点击按钮后我收到以下错误
No connection could be made because the target machine actively refused it 127.0.0.1:4444
我该怎么办?
提前感谢..
观看者注意:这篇文章可以帮助您:No connection could be made because the target machine actively refused it
答案 0 :(得分:8)
“...目标计算机主动拒绝它”意味着可以在超时内到达并响应服务器,但指定的端口未打开。这可能有几个原因,例如:阻止连接的本地防火墙。您确定服务器正在侦听正确的IP /端口吗?
答案 1 :(得分:3)
为读者添加更多清晰度:使用以下基本步骤启动selenium服务器:
答案 2 :(得分:3)
我得到了同样的错误,但是在不同的代码行上。希望这可能会帮助某个人,即使它没有回答最初的问题。
public override void SetupTest()
{
Driver = new FirefoxDriver();
base.SetupTest();
}
我正在使用WebDriver(我不运行Selenium服务器),FirefoxDriver的构造函数抛出异常。
有时我会遇到这个例外:
A first chance exception of type 'System.Net.Sockets.SocketException' occurred in System.dll
Additional information: No connection could be made because the target machine actively refused it
使用此调用堆栈:
WebDriver.dll!OpenQA.Selenium.Firefox.Internal.ExtensionConnection.ConnectToBrowser(System.TimeSpan timeToWait) Line 247 C#
WebDriver.dll!OpenQA.Selenium.Firefox.Internal.ExtensionConnection.Start() Line 98 C#
WebDriver.dll!OpenQA.Selenium.Firefox.FirefoxDriver.StartClient() Line 237 C#
WebDriver.dll!OpenQA.Selenium.Remote.RemoteWebDriver.RemoteWebDriver(OpenQA.Selenium.Remote.ICommandExecutor commandExecutor, OpenQA.Selenium.ICapabilities desiredCapabilities) Line 89 C#
WebDriver.dll!OpenQA.Selenium.Firefox.FirefoxDriver.FirefoxDriver(OpenQA.Selenium.Firefox.FirefoxBinary binary, OpenQA.Selenium.Firefox.FirefoxProfile profile, OpenQA.Selenium.ICapabilities capabilities, System.TimeSpan commandTimeout) Line 172 C#
WebDriver.dll!OpenQA.Selenium.Firefox.FirefoxDriver.FirefoxDriver(OpenQA.Selenium.Firefox.FirefoxBinary binary, OpenQA.Selenium.Firefox.FirefoxProfile profile, System.TimeSpan commandTimeout) Line 167 C#
WebDriver.dll!OpenQA.Selenium.Firefox.FirefoxDriver.FirefoxDriver(OpenQA.Selenium.Firefox.FirefoxBinary binary, OpenQA.Selenium.Firefox.FirefoxProfile profile) Line 154 C#
WebDriver.dll!OpenQA.Selenium.Firefox.FirefoxDriver.FirefoxDriver(OpenQA.Selenium.Firefox.FirefoxProfile profile) Line 132 C#
SetupTest() Line 513 C#
有时我会遇到这个例外:
A first chance exception of type 'System.Net.Sockets.SocketException' occurred in System.dll
Additional information: Only one usage of each socket address (protocol/network address/port) is normally permitted
使用此调用堆栈:
WebDriver.dll!OpenQA.Selenium.Firefox.Internal.ExtensionConnection.DetermineNextFreePort(string host, int port) Line 161 C#
WebDriver.dll!OpenQA.Selenium.Firefox.Internal.ExtensionConnection.Start() Line 88 C#
[same as above]
但有一点我最初没有意识到,如果你继续执行(F5),一切都很好。必须在WebDriver中处理异常。
唯一的问题是我有 DEBUG / Exceptions / CLR Exceptions:Thrown [checked] 。 只需取消选中即可完成所有操作而不会丢失/破坏。我花了一段时间才意识到这一点。以前调试会话的剩余内容......
答案 3 :(得分:2)
这就是我这样做的方式,我班级的结构。
[TestFixture, Parallelizable(ParallelScope.None)]
public class UserTest : BaseTestClass
{
[SetUp]
public void SetUp()
{
ChromeOptions options = new ChromeOptions();
//options.AddArgument("--headless");
options.AddArgument("--start-maximized");
var driver = new ChromeDriver(options);
WebDriver = WebDriverExtended.InitWebDriver(driver, driver.Url);
WebDriver.Start();
}
[TearDown]
public void Cleanup()
{
//Dispose after every single test, fixed the problem.
WebDriver.Close();
WebDriver.Quit();
WebDriver.Dispose();
}
[Test]
public void LoginTest()
{
//My test ...
}
}
我目前正在使用Selenium.Support v3.6.0和Selenium.WebDriver v3.6.0。 处置webdriver解决了我的问题
无法建立连接,因为目标计算机是主动的 拒绝了它127.0.0.1:4444
答案 4 :(得分:1)
我得到了这个,因为我的代码的一部分引用了陈旧的驱动程序。
var driver1 = new OpenQA.Selenium.Firefox.FirefoxDriver();
driver1.Close();
driver1.Quit();
driver1.Dispose();
var x = driver1.FindElements(...);
答案 5 :(得分:0)
确保要运行脚本的远程计算机已启动并正常运行。其次确保Chrome驱动程序和chrome更新。最后,没有防火墙阻止您访问远程计算机。
PS:手动关闭selenium服务器并重新启动它。
答案 6 :(得分:0)
对我来说,通过更改Chrome中的设置可以解决此问题,如下所示:
答案 7 :(得分:0)
我也遇到过这种类型的错误。
我所做的是在测试结束时关闭浏览器并退出驱动程序,但我忘了让 Webdriver wait = null;
因此,当我再次尝试为下一个测试打开一个新浏览器时,它最终会启动浏览器并重定向到 URL,但在交互时它给了我这个错误 No connection could be made because the target machine actively refused it
。
所以我发现我正在使用 wait
的封闭驱动程序实例。
所以请检查您是否正在使用类似的东西。
答案 8 :(得分:0)
就我而言,这是服务范围的问题。使用 WebDriver 的那些被注册为单例,并且在第一个之后的每个后续请求都失败了。 (即使我在每次请求后手动关闭并重新创建 Web 驱动程序实例)。一旦我将范围更改为瞬态,它就可以正常工作。