Блог вебразработчика
  • ГЛАВНАЯ
  • ПОДПИСКА

Selenium WebDriver запуск через proxy

Авг27
2012
Написал Tatyana

Самый простой способ запуска автотестов через прокси заключается в ручном изменении настроек Вашей операционной системы.
Для того же, чтобы изменить настройки программным путем, можно использовать класс Capabilities. Использование Capabilities временно изменяет системные настройки прокси. После завершения работы драйвера они будут возвращены к исходным значениям.

Пример настройки FirefoxDriver:

import org.openqa.selenium.Proxy;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.remote.DesiredCapabilities;


Proxy proxy = new Proxy();
proxy.setHttpProxy("localhost:8888");

DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.PROXY, proxy);

WebDriver driver = new FirefoxDriver(capabilities);

Аналогично выполняется настройка для InternetExplorerDriver и RemoteWebDriver.

Mozilla Firefox также содержит настройки прокси в профиле. Поэтому для запуска Firefox через proxy можно использовать второй способ — профиль с предустановленными необходимыми значениями:

FirefoxProfile profile = new FirefoxProfile();

profile.setPreference("network.proxy.type", 1);
profile.setPreference("network.proxy.http", "localhost");
profile.setPreference("network.proxy.http_port", 8888);

WebDriver driver = new FirefoxDriver(profile);

Ключи и значения настроек сети для Mozilla Firefox: Mozilla networking preferences

Начиная с версии 2.16 Capabilities для ChromeDriver больше не используется, вместо него необходимо использовать ChromeOptions. Настройка прокси для ChromeDriver выглядит следующим образом:

import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;

ChromeOptions option = new ChromeOptions();
option.addArguments("--proxy-server=http://" + PROXY);
WebDriver driver = new ChromeDriver(option);

Запуск тестов через прокси используется не только при работе с прокси-серверами но и, например, для блокировки лишнего контента при тестировании и тем самым увеличения скорости загрузки страниц.

  • Нравится
  • Tweet

Опубликовано в Selenium - Помечено ChromeDriver, FirefoxDriver, InternetExplorerDriver, RemoteWebDriver, Selenium WebDriver
Рассказать всем Twitter Facebook Delicious StumbleUpon E-Mail
← DDT с использованием Selenium и JUnit
Selenium и Page Object паттерн →

Warning: count(): Parameter must be an array or an object that implements Countable in /var/www/u0420283/data/www/internetka.in.ua/wp-includes/class-wp-comment-query.php on line 405

12 комментариев

  1. Alex's Gravatar Alex
    28.11.2013 at 07:09 | Permalink

    а что если нужно задействовать прокси с авторизацией для ChromeDriver? У меня выскакивает окно basic authorization, как с ним бороться?

    • Tatyana's Gravatar Tatyana
      28.11.2013 at 09:41 | Permalink

      Самый простой способ — запускать тесты с кастомным профилем, в котором заранее настроен прокси сервер, в этом случае возможно использование каких-либо расширений для хрома

      ChromeOptions options = new ChromeOptions();
      options.addArguments("user-data-dir=PATH_TO_CUSTOM_USER_DATA");
      

      Можно использовать AutoIt, чтобы ввести логин и пароль в диалоговое окно.
      Иногда используют BrowserMob, но в него приходится вносить определенные изменения (не самый лучший способ).

  2. Denis's Gravatar Denis
    17.04.2014 at 10:16 | Permalink

    Добрый день. Очень полезная статья, спасибо огромное!
    Интересует один момент — прокси сервер выбирается случайно, чтобы каждый раз не подставлять его? Хотелось бы понимать как это работает.

    • Tatyana's Gravatar Tatyana
      18.04.2014 at 06:45 | Permalink

      Добрый день, нет, прокси сервер не может выбираться случайно. Вы всегда должны явно указывать хост и порт.

      • Denis's Gravatar Denis
        27.04.2014 at 13:27 | Permalink

        Печаль( Тогда в этом нет смысла, если придется каждый раз задавать его вручную. У меня при проверке регистрации каждую вторую регистр вылазит капча, которую я и хочу обойти с помощью прокси. но если придется задавать его вручную, то это не вариант.

        • Tatyana's Gravatar Tatyana
          28.04.2014 at 06:57 | Permalink

          Посмотрите в сторону BrowserMob Proxy, возможно это поможет решить Вашу задачу

  3. repon's Gravatar repon
    09.02.2016 at 13:41 | Permalink

    а у меня сначала вызывается функция, которая хапает список с проксиками с сайта, а потом уже для каждого пробега — запускается новый драйвер с новым прокси и тестируется ***, драйвер закрывается, запускается новый с новым прокси и тд…

    вот только не могу придумать,Как тестировать жизнеспособность проксика?!

    • Алекс's Gravatar Алекс
      02.11.2016 at 09:04 | Permalink

      import os
      import subprocess
      from multiprocessing import Pool, cpu_count

      def proxy_Ping(host):
      response = os.system(«ping -c 1 -n 2 » + host)
      if response == 0: return True
      return False

  4. misha's Gravatar misha
    23.10.2016 at 09:47 | Permalink

    Подскажите как подменять настройки прокси через php?

  5. Юрий's Gravatar Юрий
    01.11.2016 at 16:40 | Permalink

    Коллеги, я в замешательстве. Не ходит у меня Firefox через прокси.. Не могу понять, что не так. Взгляните свежим взглядом плиз.
    php

    $myBrowser = ‘firefox’;
    $capabilities = DesiredCapabilities::$myBrowser();
    $profile = new Firefox\FirefoxProfile();
    $profile->setPreference(«network.proxy.type», 1);
    $profile->setPreference(«network.proxy.http», ‘http://’.$proxy->host);
    $profile->setPreference(«network.proxy.http_port», $proxy->port);
    //$capabilities->setCapability(«proxy», «http://тут адрес моего прокси:порт»); — так тоже не вышло
    $capabilities->setCapability(‘firefox_profile’, $profile);

    казалось бы — все правильно, но на тестовой странице показывает айпи сервера, а не прокси…

  6. Steven's Gravatar Steven
    14.02.2017 at 20:25 | Permalink

    На ходу options можно менять? Хотя бы новому окну.

  7. Waldo's Gravatar Waldo
    11.07.2017 at 15:21 | Permalink

    Я только начал изучать автоматизацию и многое не понимаю.
    У меня есть задача протестировать сайт с американского IP. Пытаюсь использовать эти два способа (для FF и Chrome) но они у меня не работают, сайт открывает, но локация — Украина.
    Подскажите, что я не так делаю?

    public class test1{
    private WebDriver driver;
    private String baseUrl;
    private boolean acceptNextAlert = true;
    private StringBuffer verificationErrors = new StringBuffer();

    @Before
    public void setUp() throws Exception {

    System.setProperty(«webdriver.chrome.driver»,»C:\\Users\\user\\Chromedriver\\chromedriver.exe»);
    driver = new ChromeDriver();
    baseUrl = «https://2ip.ua»;
    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
    ChromeOptions option = new ChromeOptions();
    option.addArguments(«—proxy-server=http://173.26.241.133:53282»);
    WebDriver driver = new ChromeDriver(option);
    @Test
    public void test1() throws Exception {

    driver.get(«https://2ip.ua»);
    }
    }

Свежие записи

  • WebDriver и SSL Untrusted certificate
  • Видеозапись выполнения тестов Selenium
  • Selenium WebDriver: basic авторизация
  • BrowserMob Proxy + Selenium: автоматизация сбора данных о производительности
  • Hibernate 4: UserType пользовательский тип данных (часть 2)

Поиск

Рубрики

  • Hibernate ORM
  • SEO
  • Разное
  • Тестирование
    • JUnit
    • Selenium
    • Thucydides

Метки

Actions AJAX Alert AutoIt ChromeDriver Exceptions ExpectedConditions FindElement FirefoxDriver Hibernate InternetExplorerDriver Java Javascript Jenkins JUnit4 Maven PageFactory Page Object RemoteWebDriver Select Selenium IDE Selenium Server Selenium WebDriver switchTo Thucydides WebDriverWait XPath Автоматизированное тестирование база данных заработок в сети сеть Интернет скорость продвижения сайта статейное продвижение услуги продвижения

Реклама


Donec in mi a arcu cursus commodo non ut metus. Nunc id eros ut augue consequat tempus ut non ligula. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Integer pretium, erat sit amet scelerisque euismod, purus lectus convallis dui, eget imperdiet sapien est ut magna. Nullam elementum, tortor vitae pulvinar mattis, orci neque porta tortor, a feugiat nisi lacus quis diam. Ut gravida augue id est rutrum elementum. Mauris eget felis dolor. Phasellus ante ante, porttitor sit amet lobortis ut, suscipit id neque. Fusce hendrerit dolor nec odio eleifend in auctor enim cursus. Nullam fermentum pretium risus, in hendrerit nulla cursus sit amet. Fusce eu tempus elit. Ut tortor velit, aliquam in ornare vel, feugiat sed nibh. Donec fringilla est id odio lacinia vulputate. Donec nulla urna, congue sit amet pretium non, dictum at orci. Fusce neque sem, fermentum eu tempus nec, mattis venenatis sem. Proin scelerisque velit tristique urna mattis adipiscing. Proin mattis faucibus facilisis. Integer non lacus ac ligula accumsan convallis quis molestie erat. Curabitur imperdiet vestibulum vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Mauris lacus ligula, hendrerit eget suscipit in, sollicitudin nec dui. Suspendisse euismod, lorem pretium gravida rhoncus, enim quam facilisis orci, nec volutpat nisi dolor id lacus. Proin dolor arcu, rutrum eget hendrerit vel, pharetra id elit. Nullam porta euismod suscipit. Pellentesque malesuada consequat sem, et auctor magna aliquam gravida. Nullam blandit dignissim iaculis. Suspendisse non diam nec augue scelerisque iaculis. Nam id dui sed lorem vulputate rhoncus eget eu tellus. In sit amet nisi nunc. Fusce sed aliquet sem. Aliquam sit amet metus metus.
Donec in mi a arcu cursus commodo non ut metus. Nunc id eros ut augue consequat tempus ut non ligula. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Integer pretium, erat sit amet scelerisque euismod, purus lectus convallis dui, eget imperdiet sapien est ut magna. Nullam elementum, tortor vitae pulvinar mattis, orci neque porta tortor, a feugiat nisi lacus quis diam. Ut gravida augue id est rutrum elementum. Mauris eget felis dolor. Phasellus ante ante, porttitor sit amet lobortis ut, suscipit id neque. Fusce hendrerit dolor nec odio eleifend in auctor enim cursus. Nullam fermentum pretium risus, in hendrerit nulla cursus sit amet. Fusce eu tempus elit. Ut tortor velit, aliquam in ornare vel, feugiat sed nibh. Donec fringilla est id odio lacinia vulputate. Donec nulla urna, congue sit amet pretium non, dictum at orci. Fusce neque sem, fermentum eu tempus nec, mattis venenatis sem. Proin scelerisque velit tristique urna mattis adipiscing. Proin mattis faucibus facilisis. Integer non lacus ac ligula accumsan convallis quis molestie erat. Curabitur imperdiet vestibulum vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Mauris lacus ligula, hendrerit eget suscipit in, sollicitudin nec dui. Suspendisse euismod, lorem pretium gravida rhoncus, enim quam facilisis orci, nec volutpat nisi dolor id lacus. Proin dolor arcu, rutrum eget hendrerit vel, pharetra id elit. Nullam porta euismod suscipit. Pellentesque malesuada consequat sem, et auctor magna aliquam gravida. Nullam blandit dignissim iaculis. Suspendisse non diam nec augue scelerisque iaculis. Nam id dui sed lorem vulputate rhoncus eget eu tellus. In sit amet nisi nunc. Fusce sed aliquet sem. Aliquam sit amet metus metus.
Donec in mi a arcu cursus commodo non ut metus. Nunc id eros ut augue consequat tempus ut non ligula. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Integer pretium, erat sit amet scelerisque euismod, purus lectus convallis dui, eget imperdiet sapien est ut magna. Nullam elementum, tortor vitae pulvinar mattis, orci neque porta tortor, a feugiat nisi lacus quis diam. Ut gravida augue id est rutrum elementum. Mauris eget felis dolor. Phasellus ante ante, porttitor sit amet lobortis ut, suscipit id neque. Fusce hendrerit dolor nec odio eleifend in auctor enim cursus. Nullam fermentum pretium risus, in hendrerit nulla cursus sit amet. Fusce eu tempus elit. Ut tortor velit, aliquam in ornare vel, feugiat sed nibh. Donec fringilla est id odio lacinia vulputate. Donec nulla urna, congue sit amet pretium non, dictum at orci. Fusce neque sem, fermentum eu tempus nec, mattis venenatis sem. Proin scelerisque velit tristique urna mattis adipiscing. Proin mattis faucibus facilisis. Integer non lacus ac ligula accumsan convallis quis molestie erat. Curabitur imperdiet vestibulum vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Mauris lacus ligula, hendrerit eget suscipit in, sollicitudin nec dui. Suspendisse euismod, lorem pretium gravida rhoncus, enim quam facilisis orci, nec volutpat nisi dolor id lacus. Proin dolor arcu, rutrum eget hendrerit vel, pharetra id elit. Nullam porta euismod suscipit. Pellentesque malesuada consequat sem, et auctor magna aliquam gravida. Nullam blandit dignissim iaculis. Suspendisse non diam nec augue scelerisque iaculis. Nam id dui sed lorem vulputate rhoncus eget eu tellus. In sit amet nisi nunc. Fusce sed aliquet sem. Aliquam sit amet metus metus.
Donec in mi a arcu cursus commodo non ut metus. Nunc id eros ut augue consequat tempus ut non ligula. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Integer pretium, erat sit amet scelerisque euismod, purus lectus convallis dui, eget imperdiet sapien est ut magna. Nullam elementum, tortor vitae pulvinar mattis, orci neque porta tortor, a feugiat nisi lacus quis diam. Ut gravida augue id est rutrum elementum. Mauris eget felis dolor. Phasellus ante ante, porttitor sit amet lobortis ut, suscipit id neque. Fusce hendrerit dolor nec odio eleifend in auctor enim cursus. Nullam fermentum pretium risus, in hendrerit nulla cursus sit amet. Fusce eu tempus elit. Ut tortor velit, aliquam in ornare vel, feugiat sed nibh. Donec fringilla est id odio lacinia vulputate. Donec nulla urna, congue sit amet pretium non, dictum at orci. Fusce neque sem, fermentum eu tempus nec, mattis venenatis sem. Proin scelerisque velit tristique urna mattis adipiscing. Proin mattis faucibus facilisis. Integer non lacus ac ligula accumsan convallis quis molestie erat. Curabitur imperdiet vestibulum vulputate. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Mauris lacus ligula, hendrerit eget suscipit in, sollicitudin nec dui. Suspendisse euismod, lorem pretium gravida rhoncus, enim quam facilisis orci, nec volutpat nisi dolor id lacus. Proin dolor arcu, rutrum eget hendrerit vel, pharetra id elit. Nullam porta euismod suscipit. Pellentesque malesuada consequat sem, et auctor magna aliquam gravida. Nullam blandit dignissim iaculis. Suspendisse non diam nec augue scelerisque iaculis. Nam id dui sed lorem vulputate rhoncus eget eu tellus. In sit amet nisi nunc. Fusce sed aliquet sem. Aliquam sit amet metus metus.

Блог вебразработчика
Функциональное тестирование и продвижение сайтов

Яндекс.Метрика