Перейти к содержимому

Тестирование юзабилити (usability)
онлайн, начало 1 апреля
Школа тест-менеджеров v. 2.0
онлайн, начало 1 апреля
Программирование на C# для тестировщиков
онлайн, начало 3 апреля
Тестирование производительности: JMeter 5
онлайн, начало 3 апреля
Фотография

Как получить данные о WebDriver до его запуска

Selenium

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 2

#1 LaGrandePapa

LaGrandePapa

    Новый участник

  • Members
  • Pip
  • 6 сообщений

Отправлено 23 Январь 2020 - 13:25

Подскажите, как лучше организовать запуск IWebDriver, чтобы присвоить ему options?

Есть класс, в котором находятся тесты:

public class BetTests : TestBase<FirefoxDriver>
{
}

 

public class TestBase<TDriver> where TDriver : IWebDriver, new()

{

}

 

В классе TestBase лежит SetUp

Для разных браузеров нужны разные options. Но проблема в том, что в момент передачи в TestBase параметра мы еще не знаем, какой это будет driver.

 

Сейчас написано топорно, но это отнимает много времени:

 

[SetUp]
        public void Start()
        {
            this.driver = new TDriver();
            if (driver.ToString() == ("OpenQA.Selenium.Chrome.ChromeDriver"))
            {
                //driver.Quit();
                //driver = null;
                ChromeOptions option = new ChromeOptions();
                driver = new ChromeDriver(option);                
            }
            if (driver.ToString() == ("OpenQA.Selenium.Firefox.FirefoxDriver"))
            {
                driver.Quit();
                driver = null;
                FirefoxOptions options = new FirefoxOptions();
                options.AcceptInsecureCertificates = true;
                driver = new FirefoxDriver(options);                
            }
            app = new Application(driver);
        }

Получается что сначала запускается браузер, узнаем что это за браузер, убиваем его, устанавливаем options и запускаем повторно. А как сделать, чтобы до запуска браузера уже узнать какой будет браузер?!

 

 


  • 0

#2 Alex

Alex

    Постоянный участник

  • Members
  • PipPipPip
  • 236 сообщений
  • ФИО:Алексей

Отправлено 23 Январь 2020 - 14:39

 

Подскажите, как лучше организовать запуск IWebDriver, чтобы присвоить ему options?

Есть класс, в котором находятся тесты:

public class BetTests : TestBase<FirefoxDriver>
{
}

 

public class TestBase<TDriver> where TDriver : IWebDriver, new()

{

}

 

В классе TestBase лежит SetUp

Для разных браузеров нужны разные options. Но проблема в том, что в момент передачи в TestBase параметра мы еще не знаем, какой это будет driver.

 

Сейчас написано топорно, но это отнимает много времени:

 

[SetUp]
        public void Start()
        {
            this.driver = new TDriver();
            if (driver.ToString() == ("OpenQA.Selenium.Chrome.ChromeDriver"))
            {
                //driver.Quit();
                //driver = null;
                ChromeOptions option = new ChromeOptions();
                driver = new ChromeDriver(option);                
            }
            if (driver.ToString() == ("OpenQA.Selenium.Firefox.FirefoxDriver"))
            {
                driver.Quit();
                driver = null;
                FirefoxOptions options = new FirefoxOptions();
                options.AcceptInsecureCertificates = true;
                driver = new FirefoxDriver(options);                
            }
            app = new Application(driver);
        }

Получается что сначала запускается браузер, узнаем что это за браузер, убиваем его, устанавливаем options и запускаем повторно. А как сделать, чтобы до запуска браузера уже узнать какой будет браузер?!

 

Как-то тут все неправильно

1. Почему TestBase<IDriver>? Зачем как-то в типе хранить драйвер?

2. Делегируйте вопрос запуска драйвера кому-то другому

3. В рамках этого решения вроде можно использовать typeof (не помню точно синтаксис C#), что не требует инициализации драйвера

 

Но это все равно неправильно


  • 0

#3 LaGrandePapa

LaGrandePapa

    Новый участник

  • Members
  • Pip
  • 6 сообщений

Отправлено 24 Январь 2020 - 06:16

typeof помог, спасибо.

Буду думать дальше, как делать правильно.


  • 0


Selenium 2.0: стартовый уровень
онлайн
Программирование на Java для тестировщиков
онлайн
Автоматизация функционального тестирования
онлайн
Selenium WebDriver: полное руководство
онлайн




Темы с аналогичным тегами Selenium

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных

Яндекс.Метрика
Реклама на портале