Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

При запуске из Visual Studio падает тест в формате C#, который отрабатывает в формате HTML на Selenium IDE

cross-browser
windows
selenium
webdriver
Теги: #<Tag:0x00007f7b64b554f0> #<Tag:0x00007f7b64b55388> #<Tag:0x00007f7b64b551d0> #<Tag:0x00007f7b64b55068>

(Natalya K) #1

Всем привет, возможно проблема банальна, но я только начинаю осваивать автомейшн - поэтому мне сложно. Суть проблемы: записываю в селениум рекордере код, переношу в студию и при запуске получаю следующее:

Test Name: TheUntitledTest
Test FullName: SeleniumTests.Untitled.TheUntitledTest
Test Source: c:\Users\Username\Source\Workspaces\Workspace\csview\csview\UnitTest1.cs : line 44
Test Outcome: Failed
Test Duration: 0:00:47,278

Result Message:
OpenQA.Selenium.WebDriverException : Failed to start up socket within 45000 milliseconds. Attempted to connect to the following addresses: 127.0.0.1:7055
TearDown : System.NullReferenceException : Ссылка на объект не указывает на экземпляр объекта.
Result StackTrace:
в OpenQA.Selenium.Firefox.FirefoxDriverServer.ConnectToBrowser(TimeSpan timeToWait)
в OpenQA.Selenium.Firefox.FirefoxDriverServer.Start()
в OpenQA.Selenium.Firefox.FirefoxDriverCommandExecutor.Execute(Command commandToExecute)
в OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters)
в OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities desiredCapabilities)
в OpenQA.Selenium.Remote.RemoteWebDriver…ctor(ICommandExecutor commandExecutor, ICapabilities desiredCapabilities)
в OpenQA.Selenium.Firefox.FirefoxDriver…ctor(FirefoxBinary binary, FirefoxProfile profile)
в OpenQA.Selenium.Firefox.FirefoxDriver…ctor()
в SeleniumTests.Untitled.SetupTest() в c:\Users\Username\Source\Workspaces\Workspace\csview\csview\UnitTest1.cs:строка 23
–TearDown
в SeleniumTests.Untitled.TeardownTest() в c:\Users\Username\Source\Workspaces\Workspace\csview\csview\UnitTest1.cs:строка 39

Код елементарный - запустить https://www.google.com.ua и задать поис по слову ‘flower’, собственно, вот он:

using System;
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 Untitled
{
private IWebDriver driver;
private StringBuilder verificationErrors;
private string baseURL;
private bool acceptNextAlert = true;

    [SetUp]
    public void SetupTest()
    {
        driver = new FirefoxDriver();
        baseURL = "https://www.google.com.ua/";
        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 TheUntitledTest()
    {
        driver.Navigate().GoToUrl(baseURL + "/?gws_rd=ssl");
        driver.FindElement(By.Id("lst-ib")).Clear();
        driver.FindElement(By.Id("lst-ib")).SendKeys("flower");
    }
    private bool IsElementPresent(By by)
    {
        try
        {
            driver.FindElement(by);
            return true;
        }
        catch (NoSuchElementException)
        {
            return false;
        }
    }
    private bool IsAlertPresent()
    {
        try
        {
            driver.SwitchTo().Alert();
            return true;
        }
        catch (NoAlertPresentException)
        {
            return false;
        }
    }
    private string CloseAlertAndGetItsText()
    {
        try
        {
            IAlert alert = driver.SwitchTo().Alert();
            string alertText = alert.Text;
            if (acceptNextAlert)
            {
                alert.Accept();
            }
            else
            {
                alert.Dismiss();
            }
            return alertText;
        }
        finally
        {
            acceptNextAlert = true;
        }
    }
}

}

в результате получаю ексепшн


Запускаю на платформе Windows 10.
Пыталась работать с Chrome и IE браузерами - результат тот же.

Подскажите, как с этим бороться? Заранее благодарна!


(Konstantin) #2

распространенная ошибка когда версия браузера привышает версию вебдрайвера. Надо либо скачать новую версию драйвера либо задаунгрейдить браузер.

Покраиней мере это то что я нашел в интернетах когда у меня такое было


(Natalya K) #3

Спасибо, попробую сделать так. :slight_smile: Только из этого возникает еще один вопрос - как задаунить браузер?


(5am) #4

удалить и скачать более олдовую версию.


(Natalya K) #5

В общем, не помогло :frowning: Поставила старую версию FF - результат остался тем же. Все еще пытаюсь понять что не так.


(Nik Sidorenko) #6

Какая именно версия(номер билда) WebDriver и FireFox используется?
В Chrome выдаёт такую же ошибку? Какая версия Chrome? Обычно в Chrome такого не бывает.


(Natalya K) #7

Здравствуйте.

Selenium IDE 2.9.1.1, Firefox начинала с версии 46, потом 39 и 24 - результат тот же. IE и Chrome - по тому же сценарию, все время пытается открыть сокет 127.0.0.1:7055


(Nik Sidorenko) #8

Забыл спросить сразу. Windows Firewall отключен? Или исключение на на порт 7055 добавлено?
Если нет ни того ни другого, попробуйте временно отключить Firewall и проверить работает ли без него.
Студия “Run as administrator” запущена?
И ещё вы указали версию Selenium IDE, а какая версия Selenium WebDriver? Это разные вещи.
Версию Selenium WebDriver можно посмотреть либо в NuGet манаджере, если Вы им пользуетесь, либо прямо на файле WebDriver.dll в свойствах файла на закладке Детали http://prntscr.com/bcy6l2


(Natalya K) #9

Пока ни того ни другого не предпринимала - спасибо за подсказку, пробую

ВебДрайвер 2.45.0.0


(Nik Sidorenko) #10

Провёл эксперимент с Firefox 46.0.1 (самый свежий) и WebDriver 2.45 (выпущен February 27, 2015), та же ошибка.
С Firefox 46.0.1 и WebDriver 2.53 (самый свежий) всё ок. Попробуйте всё таки обновить и Firefox и WebDriver до последних.


(Natalya K) #11

Спасибо за помощь!

Запуск от имени администратора позволил нормально запустить Chrome и IE драйвер, с FireFox по прежнему те же проблемы, но для меня это уже не принципиально - главное хоть на чем-то заработало!!! :slight_smile:


(Nik Sidorenko) #12

Не забывайте ставить пометку “ответ” (чтобы другим было легче найти, что помогло) и закрывать тему (если ответ получен)


(Антон) #13

Всем привет. Столкнулся с такой же проблемой.
OS: Windows 10, FireFox x64 v.46.0.1 , WebDriver v. 2.53.0
Обновления/откаты Firefox и Selemium не помогли, отключение брандмауэра, запуск студии и браузера от имени администратора не помогло.
В Chrome запускается, в Firefox нет. Нужен именно Firefox.
Есть еще идеи? Спасибо.


(Nik Sidorenko) #14

Exception такой же и на такой же строчке?

Пробую воспроизвести у себя на Windows 10


(Nik Sidorenko) #15

Есть подозрение что FireFox автоматически обновляется до версии 47. С которой последний ВебДрайвер не умеет работать.


(Natalya K) #16

А почему тогда в качестве версии FF упорно выводится 46.0.1 ?


(Nik Sidorenko) #17

где выводит?
FF в этом плане очень вредный. Когда Вы его просто запускаете он может показывать 46.0.1, но когда Вы запускаете его через ВебДрайвер, то запускается новый профайл, в котором скорее всего по-умолчанию стоит автоапдейт и он его апдейтит.
На 10-ке у меня только что так и происходило.
В момент выдачи исключения, я в диспетчере задач посмотрел версию ФФ - как раз 47.0 была.
Попробуйте заново установить ФФ 46.0.1 со стандалон инсталяции, предварительно отключив интернет, а после инсталяции выключите авто-апдейт.
Затем попробуйте запустить ФФ дрейвер при по-прежнему выключеном интернете.
Вобщем отрежьте все пути ФФ для апдейта.


Помогите разобраться с проблемой запуска тестов в Firefox
(Nik Sidorenko) #18

На Windows 10 работает с FireFox 46 и WebDriver 2.53


(Natalya K) #19

У меня почему-то до сих пор не работает, именно с єтим инвайронментом. (Вернее ФФ вообще никак не работает). Хром работает оригинально: при первом запуске тест отрабатывает успешно, при повторном - валится, в режиме дебага - всегда pass.


(Nik Sidorenko) #20

Это уже нужно смотреть конкретно тест. Скорее всего где-то не хватает ожидания. Или валится такая же ошибка как на скриншоте в первом посте?