• Как в wiki redmine сделать оглавление главной страницей?

    @Kirim
    Можно попробовать на главной станице добавить макрос {{child_pages}}
    Ответ написан
    Комментировать
  • Как выделить текст в инпуте в codeception?

    @matperez Автор вопроса
    Вот так получилось
    $I->click(['link' => 'Заказать']);
    $I->waitForElement('#order-comment', 5);
    $I->fillField('#order-comment', 'test comment');
    $I->executeJS('document.getElementById("order-comment").select();');
    Ответ написан
    Комментировать
  • Как отправить сообщение с тегом в вконтакте?

    @Drjabaka Автор вопроса
    ответ: можно заменить знак решетки на %23,
    ввел в браузере в поиск и оно решетку заменяет на %23
    Ответ написан
    Комментировать
  • PhantomJS 2.0+Selenium работает слишком медленно?

    shqn
    @shqn Автор вопроса
    Может кому пригодится: причина оказалась в больших размерах javascript объектов, которые были на странице. Лечить это можно вынесением каких-то его частей в отдельные объекты. Что-то вроде того:

    // Problem
    var complexObject = {
        id: 123,
        name: "Object 123",
        foo: {...}, // Много данных
        bar: {...} // Много данных
    };
    
    // Solution
    var fooObject = {
        // ...
    };
    var barObject = {
        // ...
    };
    
    var complexObject = {
        id: 123,
        name: "Object 123",
        foo: fooObject
        bar: barObject
    };
    Ответ написан
    3 комментария
  • В чем преимущество phantomjs перед selenium?

    @uelkfr
    PhantomJS - полностью headless-браузер, не требует X11 Server или DXGI, таким образом потребляет меньше ресурсов и работает на порядок быстрее (но медленнее ZombieJS разумеется). Недостатками при этом являются отсутствие поддержки Flash, старая версия JavaScript-движка V8, старая версия Webkit - из последних двух причин следует, что отсутствует поддержка новых технологий HTML5 - из чего следует не все сайты работают корректно. В ZombieJS дела еще хуже, он вообще со многими сайтами не работает, т.е. для парсинга не подойдет, для тестирования может подойти, но готовтесь к тому что придется отлаживать сам ZombieJS.

    Selenium может работать как с полностью headless-браузерами PhantomJS, SlimerJS, TrifleJS, ZombieJS, так и с обычными браузерами Chrome, Firefox, Opera, Internet Explorer (последние потребляют очень много ресурсов и обычно поднимают Selenium-ферму). При этом используется единый протокол общения с браузерами JsonWireProtocol (Webdriver Protocol) через extension или через их управляющие модули (xul-runner). Таким образом, пишется один код не привязанный к конкретному браузеру, а тестируется в нескольких браузерах. Но конечно у каждого браузера есть свои особенности и Selenium их не покрывает, и поэтому все равно приходится под каждый браузер дописывать слой кода совместимости. Если же тесты простые: заполнить поля, отметить галочку, добавить файл, нажать на кнопку или ссылку тут, то Selenium подойдет.

    Грубо говоря на PhantomJS 99% сайтов будет работать как в Chrome, но 1% сайтов будут работать с ошибками. Но насколько я понимаю это лишь важно если вы пытаетесь scrape-ить один из сайтов попадающих в этот 1% :)

    Если ваша компания маленькая, то рекомендую легковесные технологии ZombieJS, PhantomJS, Mocha, если ваша компания крупная, есть большой штат сисадминов, тимлидов, архитектов, то рекомендую тяжеловесные масштабируемые технологии Docker, Vagrant, Selenium, Jenkis CI.
    Ответ написан
    Комментировать
  • Как при помощи Selenium+Webdriver+Java нажать на кнопку, у которой динамический локатор?

    @denizen
    findElementsByXPath() вернёт список найденных элементов, которые можно обработать в цикле.
    Т.е. если, например, все кнопки Following имеют класс "button-text following-text", то передав в findElementsByXPath() строку ".//span[@class='button-text following-text']", можно получить список всех кнопок Following на странице.
    Ответ написан
    Комментировать
  • Как в Selenium IDE имитировать нажатие Enter?

    iRad
    @iRad Автор вопроса
    Ответ нашёл. Делюсь:
    command - sendKeys
    target - ставим нужный айдишник или селектор
    value - ${KEY_ENTER}
    Ответ написан
    Комментировать