Никакое соединение не может быть сделано, потому что целевая машина активно отказалась от него (селен)
Я извлек следующий код из Selenium IDE (пульт дистанционного управления С#)
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", "[email protected]");
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");
}
}
}
я создал веб-форму и добавил там кнопку.
в событии нажатия кнопки я написал этот код
SeleniumTests.MyFirstVCTest m = new SeleniumTests.MyFirstVCTest();
m.SetupTest();
m.TheMyFirstVCTest();
m.TeardownTest();
i включил все DLL файлы. (без ошибок и предупреждений).
но после нажатия кнопки я получаю следующую ошибку
No connection could be made because the target machine actively refused it 127.0.0.1:4444
что я должен делать?
спасибо заранее.
Примечание для зрителей. Этот пост может вам помочь: Не удалось установить соединение, потому что целевая машина активно отказалась от него
Ответы
Ответ 1
"... целевая машина активно отказалась от этого" означает, что сервер может быть достигнут и отвечать в течение таймаута, но указанный порт не был открыт. Это может иметь несколько причин, например. локальный брандмауэр блокирует соединение. Вы уверены, что сервер прослушивает правильный IP-порт?
Ответ 2
Чтобы добавить больше ясности для читателей: запустите сервер selenium, выполнив следующие шаги:
- Скачать selenium -сервер автономный от официального селена скачать
стр.
- Откройте командную строку.
- Перейдите в папку, используя "Cd".
- Добавьте эту команду: "java - jar".
- Нажмите Enter.
- Сервер Selenium будет запущен.
Ответ 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/Исключения/Исключения CLR: Бросил [отмечен].
Просто снимите этот флажок, и все будет работать без броска/взлома. Понадобился время, чтобы понять это. Остатки предыдущей сессии отладки...
Ответ 4
Я получил это, потому что часть моего кода содержала ссылку на устаревший драйвер.
var driver1 = new OpenQA.Selenium.Firefox.FirefoxDriver();
driver1.Close();
driver1.Quit();
driver1.Dispose();
var x = driver1.FindElements(...);
Ответ 5
Так я это делаю, структура моего класса.
[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
Ответ 6
Убедитесь, что удаленный компьютер, на котором запускаются скрипты, работает и работает. Во-вторых, убедитесь, что на нем обновлен хром-драйвер и хром. Наконец, брандмауэр не блокирует доступ к удаленному компьютеру.
PS: Вручную закройте сервер selenium и перезапустите его.