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

Запуск через код кастомного профиля FF через Selenium RC


(svim) #1

Инструменты Java, Selenium RC

Необходимо, запустить на удалённой машине RC и начать работу через кастомный профиль FF с помощью RC.

На данный момент имеется

 


@Test
    public void CreateOrder() throws Exception
    {

        File profileDirectory = new File("/home/test/MozzillaProf/");
        FirefoxProfile profile = new FirefoxProfile();
        WebElement element;
        Select list;
        SeleniumServer server = new SeleniumServer();
        server.start();

        try {

            WebDriver driver = new RemoteWebDriver(
                    new URL("http://localhost:4444/wd/hub"),
                    DesiredCapabilities.firefox());

           

Подскажите, пожалуйста как через код, вызвать кастомный профиль лисы. Необходимо, чтобы вот эта строка

driver.get("https://www.mywebsite.com");

выполнялась уже через наш подключаемый профиль.

 


(Mykhailo Poliarush) #2

ну нужно просто передать подгруженный профиль в драйвер через DesiredCapabilities

например, вот так вот

FirefoxProfile profile = new FirefoxProfile();
capabillities.setCapability(FirefoxDriver.PROFILE, profile);
WebDriver driver = new RemoteWebDriver(new java.net.URL("http://server"), capabillities);
 

(svim) #3

Спасибо, получилось.

Есть вопрос по-поводу обхода https запросов, на получение сертификатов.

 

Изначально на компьютере уже имелась одна версия тестов, к которым был прекручен уже имеющийся профиль, с необходимыми сертификатами. Сейчас я создаю(как написал выше) версию для удалённой работы. Так вот

Тесты 1. - Предназначены только для работы на локальной машине (WebDriver)

Тесты 2. - Предназначены для выполнения на удаленной машине (Selenium RC).

Тесты1/2 смотрят на один и тот же FF профиль. Но при, выполнении Тестов 2. - все равно получает запрос на получение сертификата, в то время, - как Тесты 1. - отрабатывают хорошо.

Не подскажите, в чём может быть проблема.

Если поможет, вот кусок кода который продгружает профиль и запускает RC.

SeleniumServer server = new SeleniumServer();
        FirefoxProfile profile = new FirefoxProfile(new File("/home/test/MozzillaProf/"));
        DesiredCapabilities capabillities = new DesiredCapabilities().firefox();
        capabillities.setCapability(FirefoxDriver.PROFILE, profile);

        try {
            server.start();

            WebDriver driver = new RemoteWebDriver(
                    new URL("http://localhost:4444/wd/hub"),
                    capabillities);

            driver.get("https://mytest.com");

 


(svim) #4

По-пробовал создать новый профиль

firefox -ProfileManager -no-remote

Открылся менеджер, создал новый профиль. После зашёл по нужному мне url'у, получил ssl сертификат. В переменной поменял, путь на нужный мне профиль , - фиг там. При запуске все равно капризничаем, просит подтвердить сертификат, а после этого даже не редеректит на сайт.


(svim) #5

Решил проблему добавивши

profile.setAssumeUntrustedCertificateIssuer(false);

 


(svim) #6

Ребят, возникла проблема при запуске тестов.

При запуске любого теста, содержащий кастомный профиль, выдаёт

 [junit] Running affordablepapers.SendMessage
    [junit] Testsuite: affordablepapers.SendMessage
    [junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 16.402 sec
    [junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 16.402 sec
    [junit] ------------- Standard Output ---------------
    [junit] 17:47:36.293 INFO - Exiting session cleaner thread
    [junit] ------------- ---------------- ---------------
    [junit] ------------- Standard Error -----------------
    [junit] log4j:WARN No appenders could be found for logger (org.openqa.selenium.server.SeleniumServer).
    [junit] log4j:WARN Please initialize the log4j system properly.
    [junit] log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
    [junit] org.openqa.selenium.WebDriverException: <html>
    [junit] <head>
    [junit] <title>Error 500 Java heap space</title>
    [junit] </head>
    [junit] <body>
    [junit] <h2>HTTP ERROR: 500</h2><pre>Java heap space</pre>
    [junit] <p>RequestURI=/wd/hub/session</p>
    [junit] <p><i><small><a href="http://jetty.mortbay.org">Powered by Jetty://</a></small></i></p>
 

По-гугливши на тему, нашёл комментарий, где человек написал, что скорее связанно с переполнением потока в FF ноде... но решение самой проблемы пока не нашёл. Кто-нибудь сталкивался с похожим?

 

--------------------------------

 

Решил проблему, удаливши все из профиля кроме:

 - cert8.db;

- cert_override.txt

 

 


(Mykhailo Poliarush) #7

исходя из того, что я увидел в логах Java heap space

вам надо больше выделять памяти при запуске java

-Xms and -Xmx


(qw1564) #8

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

решается через env variables

MAVEN_OPTS=-Xmx1024m


(svim) #9

Спасибо за ответы, забыл отписатся, что решение уже нашёл.

Выделять дополнительную память для java - не стал, а просто прочистил кастомный профиль от аддонов, кешей, и прочего. Оставил только:

- cert8.db

- cert_override.txt