Не могу запустить ни один тест!
#1
Отправлено 30 января 2013 - 20:32
IWebDriver driver = new FirefoxDriver();
у меня вылетает ошибка, что нет какого то FirefoxDriver.cs. Бред какой то. Что делать? Ни один тест не хочет запускаться вообще!
#2
Отправлено 31 января 2013 - 02:45
А вы все библиотеки подключили, необходимые для корректного запуска?у меня вылетает ошибка, что нет какого то FirefoxDriver.cs. Бред какой то. Что делать? Ни один тест не хочет запускаться вообще!
#3
Отправлено 31 января 2013 - 05:46
Использую Selenium IDE для создания тестов. Потом экспортирую как класс C#. Создаю библиотеку классов, чтобы потом использовать её в NUnit. Всё делаю по инструкции с других сайтов. Но тесты не проходят. NUnit пишет, что ссылка на объект не указывает на экземпляр объекта. Попробовал даже использовать не свои тесты, а тест из этой (http://www.software-...p?/topic/22968/) темы из 2-го поста, там тест просто открывает страницу, у меня всё равно не запускается и пишет то же самое. Я даже создал этот тест в виде консольного приложения и пошагово его проверил. На момента создания объекта
IWebDriver driver = new FirefoxDriver();
у меня вылетает ошибка, что нет какого то FirefoxDriver.cs. Бред какой то. Что делать? Ни один тест не хочет запускаться вообще!
Код в студию.
#4
Отправлено 31 января 2013 - 10:59
Ionic.Zip.dll
Newtonsoft.Json.dll
nmock.dll
Вот у меня их нету в скачанных папках NUnit и Selenium WebDriver. И где их достать тогда, если их нет на официальных сайтах?
#5
Отправлено 31 января 2013 - 11:01
ЗАметил, что во всех туториалах нужно ещё подключать библиотеки:
Ionic.Zip.dll
Newtonsoft.Json.dll
nmock.dll
Вот у меня их нету в скачанных папках NUnit и Selenium WebDriver. И где их достать тогда, если их нет на официальных сайтах?
Вы пользуетесь Visual Studio?
#6
Отправлено 31 января 2013 - 11:33
#7
Отправлено 31 января 2013 - 11:43
Да, VS2012
Отлично! Используйте nuget для установки webdriver (http://www.nuget.org...enium.WebDriver). Все нужные пакеты установятся самостоятельно.
Для nunit тоже самое http://www.nuget.org/packages/NUnit/
#8
Отправлено 31 января 2013 - 12:01
Да, VS2012
Отлично! Используйте nuget для установки webdriver (http://www.nuget.org...enium.WebDriver). Все нужные пакеты установятся самостоятельно.
Для nunit тоже самое http://www.nuget.org/packages/NUnit/
К сожалению опять нет, всё равно та же самая ошибка:
Прикрепленные файлы
#9
Отправлено 31 января 2013 - 12:03
#10
Отправлено 31 января 2013 - 12:21
Жесть какая то, что у меня не так то? />
давайте уже ваш код.
#11
Отправлено 31 января 2013 - 12:47
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.Support.UI;
namespace SeleniumTests
{
[TestFixture]
public class Test1
{
private IWebDriver driver;
private StringBuilder verificationErrors;
private string baseURL;
private bool acceptNextAlert = true;
[SetUp]
public void SetupTest()
{
driver = new FirefoxDriver();
baseURL = "http://isokor.pinstudio.ru/";
verificationErrors = new StringBuilder();
}
[TearDown]
public void TeardownTest()
{
try
{
driver.Quit();
}
catch (Exception)
{
// Ignore errors if unable to close the browser
}
Assert.AreEqual("", verificationErrors.ToString());
}
[Test]
public void The1Test()
{
driver.Navigate().GoToUrl(baseURL + "/");
driver.FindElement(By.LinkText("Главная")).Click();
driver.FindElement(By.LinkText("Каталог продукции")).Click();
driver.FindElement(By.LinkText("Партнёры")).Click();
driver.FindElement(By.LinkText("Контакты")).Click();
driver.FindElement(By.LinkText("АО \"DOMECHT\"")).Click();
}
private bool IsElementPresent(By by)
{
try
{
driver.FindElement(by);
return true;
}
catch (NoSuchElementException)
{
return false;
}
}
private string CloseAlertAndGetItsText() {
try {
IAlert alert = driver.SwitchTo().Alert();
if (acceptNextAlert) {
alert.Accept();
} else {
alert.Dismiss();
}
return alert.Text;
} finally {
acceptNextAlert = true;
}
}
}
}
Но в коде нету смысла, даже если просто написать одну единственную строку
IWebDriver driver = new FirefoxDriver();
driver.Navigate().GoToUrl("http://ya.ru");
всё равно ничего не работает и пищет эту ошибку
#12
Отправлено 31 января 2013 - 13:35
try
{
IWebDriver driver = new ChromeDriver();
driver.Navigate().GoToUrl("http://isokor.pinstudio.ru/");
}
catch (Exception exp)
{
Console.WriteLine(exp.ToString());
}
Console.ReadKey();
и боже мой, открылся хром и открыл этот сайт! Теперь вопрос, почему то же не работает с фаерфоксом??
#13
Отправлено 31 января 2013 - 13:42
А знаете что, дело сдвинулось с мёртвой точки. Я решил использовать ChromeDriver вместо FirefoxDriver. Мне выдало ошибку, что мол нету драйвера для хрома. Я скачал, кинул в папку и запустил вот этот код:
try
{
IWebDriver driver = new ChromeDriver();
driver.Navigate().GoToUrl("http://isokor.pinstudio.ru/");
}
catch (Exception exp)
{
Console.WriteLine(exp.ToString());
}
Console.ReadKey();
и боже мой, открылся хром и открыл этот сайт! Теперь вопрос, почему то же не работает с фаерфоксом??
Простите сразу не заметил.
Все дело в ошибке "Failed to start up socket within 45000". Как ее лечить сразу не могу сказать, но вы можете поискать в интернете.
Одно из решений: http://software-test...?//topic/22470/
Сообщение отредактировал achumagin: 31 января 2013 - 13:46
#14
Отправлено 31 января 2013 - 20:05
#15
Отправлено 01 февраля 2013 - 06:36
Про***лся с этой проблемой аж до сейчас) И ничего. Ничего не помогло. Много где было написано, что нужно поставить себе мозилу старую. Ну я ставил и 14, и 5, и 3, и даже 0.8. Ничего. Я уже не знаю что делать с этой проблемой />
А это пробовали? (хотя это уже из мира фантастики)
http://smartresponde...A004DM96634368c
#16
Отправлено 18 апреля 2013 - 09:07
WebDriver 2.32.0, Firefox 19.0, 20.0, 20.0.1.
Со стеком:SetUp : OpenQA.Selenium.WebDriverException : Failed to start up socket within 45000 ms
at OpenQA.Selenium.Firefox.Internal.ExtensionConnection.ConnectToBrowser(TimeSpan timeToWait) in c:\Projects\WebDriver\trunk\dotnet\src\WebDriver\Firefox\Internal\ExtensionConnection.cs:line 266 at OpenQA.Selenium.Firefox.Internal.ExtensionConnection.Start() in c:\Projects\WebDriver\trunk\dotnet\src\WebDriver\Firefox\Internal\ExtensionConnection.cs:line 98 at OpenQA.Selenium.Firefox.FirefoxDriver.StartClient() in c:\Projects\WebDriver\trunk\dotnet\src\WebDriver\Firefox\FirefoxDriver.cs:line 225 at OpenQA.Selenium.Remote.RemoteWebDriver..ctor(ICommandExecutor commandExecutor, ICapabilities desiredCapabilities) in c:\Projects\WebDriver\trunk\dotnet\src\WebDriver\Remote\RemoteWebDriver.cs:line 88 at OpenQA.Selenium.Firefox.FirefoxDriver..ctor(FirefoxBinary binary, FirefoxProfile profile, TimeSpan commandTimeout) in c:\Projects\WebDriver\trunk\dotnet\src\WebDriver\Firefox\FirefoxDriver.cs:line 162 ...Никак не исправляется. Возникает на серверной ОС.
Наблюдается только на одной машине с Windows Server 2008.
На Windows 7 всё как надо работает.
Дополнительно к ней есть проблема - расширение WebDriver загружается как отключенное.
В резульатете при старте браузера настройки не применяются и браузер ведёт себя как при первом запуске.
Эта дополнительная проблема описана на StackOverflow: http://stackoverflow...n-browser-start
Как побороть отключенность плагина после загрузки - нашел.
В тесте использовал установлку следующей настройки:
firefoxProfile.SetPreference("browser.download.dir", System.Environment.CurrentDirectory);Если её использовать, то после старта - расширения браузера не включаются. Если её не использовать, то расширение загружается корректно.
Таким образом, некоторые пользовательскиенастройки могут помешать работе.
Но основная проблема - Failed to start up socket within 45000 ms, пока не решилась.
В похожих темах решения пока тоже не нашел: https://groups.google.com/forum/?fromgroups#!search/Failed$20to$20start$20up$20socket$20within
Пробовал использовать решения:
1. Увеличить время ожидания (сделать больше 45 секунд)
FirefoxBinary firefoxBin = new FirefoxBinary("C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe"); firefoxBin.Timeout = TimeSpan.FromSeconds(120.0);2. Переустановить Firefox, почистить профили.
3. Сменить порт
var firefoxProfile = new FirefoxProfile(); firefoxProfile.Port = 40000;4. Обновить WebDriver (и так последняя версия)
5. Перезагрузить виртуалку.
...
update:
Решил проблему. Но не локализовал решение, сказать что именно сыграло решающую роль - сложно.
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных