• Selenium и BrowserMobProxy: вместе веселее!
    0
    А про то, что «Selenium'у чего-то не хватает» — это так специально задумано, потому что Selenium это базовый уровень, он должен быть не «жирным», а в точности наоборот, «тощим». Я писал про это вот тут, и там в конце можно найти много ссылок на другие интересные расширения.
  • Selenium и BrowserMobProxy: вместе веселее!
    0
    Упомянутые в этом докладе фичи он не добавляет. А если будет добавлять — примерно так и будет, с использованием прокси.

    Ну и если на то пошло, Thucydides умеет практически всё то же самое, что Cybercat, только лучше. Поэтому я рекомендую посмотреть именно на него, если хочется писать в BDD-стиле и получать красивые отчёты.
  • Selenium и BrowserMobProxy: вместе веселее!
    0
    Видел. А что?
  • Selenium: от инструмента к стандарту
    0
    PhatomJS построен на базе QtWebKit, поэтому правильный вопрос — как быстро Qt перейдёт на использование Blink и выпустит Qt WebEngine, это было анонсировано в сентябре 2013 года ([1]). Сразу после этого в мейл-листе PhantomJS появилось сообщение о том, что версия 2.0 будет использовать Qt WebEngine и по этому поводу откладывается до тех пор, пока этот самый Qt WebEngine появится ([2]). В декабре вышла версия Qt 5.2 ([3]), но в ней, увы, WebEngine пока не появился, по крайней мере официально не объявлено. Поэтому ждём.

    [1] blog.qt.digia.com/blog/2013/09/12/introducing-the-qt-webengine/
    [2] groups.google.com/d/msg/phantomjs/z_147Zj1l58/743OcR-bJHEJ
    [3] blog.qt.digia.com/blog/2013/12/12/qt-5-2-released-the-best-qt-yet/
  • Selenium: от инструмента к стандарту
    0
    Если Microsoft не подпишется на это — ничего страшного, разработанный средствами открытого сообщества драйвер тоже неплох.

    С другой стороны, интерес к проекту они проявляют, но коммитить не могут — есть юридически-бюрократические сложности, которые уже целый год не удаётся решить. Если они будут разрабатывать драйвер браузера сами, возможно, эта организационная проблема будет решена.

    Внутри Microsoft отношение к стандарту неоднозначное. Конечно, разработчикам самого браузера это может быть и не очень нужно. Но есть подразделение, которое разрабатывает Visual Studio, в частности входящие в его состав средства автоматизированного тестирования, вот они как раз двумя руками за автоматизацию. Поэтому, надеюсь, будут лоббировать эту тему внутри компании.

    А вот с Safari реальная проблема, Apple не проявляет никакой заинтересованности и не делает никаких попыток поучаствовать в процессе.
  • Selenium: от инструмента к стандарту
    +1
    Вау, круто, спасибо! А на официальном сайте нет ссылок на видеозаписи в синем зале…
  • Selenium: от инструмента к стандарту
    +3
    Провокационный вопрос. Конечно светлое :)
    Более конкретно:

    1) Год назад я делал на SQA Days доклад про это: Каким будет Selenium 3.0 и 4.0
    Если коротко, план захвата мира таков. Selenium постепенно превращается в стандарт, который сопровождается тестовым набором для проверки соответствия реализаций этому стандарту. Все производители браузеров реализуют этот стандарт. Все производители инструментов автоматизации (в частности инструментов автоматизации тестирования) переходят на использование этого стандарта, за счёт чего обеспечивается полноценная поддержка всех (стандартных) браузеров всеми инструментами тестирования, причём после выхода новой версии браузера уже сразу всё работает. Selenium как «продукт» полностью исчезает, остаются только стандарт и тесты.

    2) Если говорить про ближайшее будущее, то есть версию 3.0 — не так давно на хабре был перевод заметки Саймона Стюарта из официального блога Путь к Selenium 3.0
    Вкратце, версия 3.0 — это этап «очистки», будет полностью удалена старая технология RC (Remote Control), чтобы форсировать скорейший переход пользователей на новую технологию WebDriver, которая как раз закреплена в стандарте W3C. Новых фич не ожидается. И постепенно наращивается тестовый набор для стандарта.
  • Путь к Selenium 3.0
    0
    Нет, не планируются.
    Вместо By.id используйте By.cssSelector с проверками $= ^= и другими подобными.
    Поиск по регулярному выражению (и не обязательно ссылок, кстати) можете реализовать самостоятельно, механизм локаторов же не фиксированный.
  • Путь к Selenium 3.0
    0
    Поясните свой вопрос, использование регулярных выражений где имеется в виду?
  • Тестирование проекта Ext.Js на Selenium
    0
    В одиночку, конечно, сложно, но ведь в том и смысл opensource, чтобы найти помощников, которые тоже заинтересованы в появлении такой библиотеки-надстройки. У меня в настоящий момент коммерческих проектов с использованием ext.js не имеется, так что мой интерес не непосредственно практический, а общее развитие экосистемы вокруг Selenium — больше надстроек хороших и разных!
  • Тестирование проекта Ext.Js на Selenium
    +1
    API над Selenium и NUnit, которое само состояло бы из очень простых элементов, но позволяющих оперировать не мышкой и DOM моделью, а с объектами интерфейса Ext.Js

    Есть надежда, что это надстройка появится в виде opensource-проекта?
  • Мониторинг веб-приложении при помощи браузера
    0
  • Как можно защитить диссертацию по QA в России?
    0
    Дискуссия началась с вопроса «есть ли люди, которые не просто защищают диссертации, а приносят пользу». Сейчас сформулирован тезис, что «если человек публикует свои результаты — выступает на конференциях, публикуется в журналах — это можно считать пользой». Так вот — для защиты диссертации обязательно нужно иметь некоторый минимум публикаций, и таким образом согласно этому критерию каждый защитившийся должен быть признан принесшим некоторую пользу своими публикациями :)

    Читайте научные журналы, следите за научными и студенческими конференциями — есть среди них и те, которые имеют отношение к тестированию. То, что Вы о них не знаете — это ещё не повод говорить, что «никто ничего не делает».
  • Как можно защитить диссертацию по QA в России?
    +1
    То есть Вы таки ставите в заслугу учёным лишь их достижения в области популяризации. Напрасно.

    В качестве примера, пожалуй, можно привести Эвариста Галуа. Он сейчас считается одним из основоположников высшей алгебры. Его научные статьи никто из тогдашних маститых учёных не соглашался принять, потому что не понимали. Наверное, если бы он прожил дольше — дожил бы и до признания, но он погиб в 20 лет, застрелен на дуэли. И только через 10 лет после смерти его работы были наконец поняты и опубликованы с развёрнутыми комментариями, потому что писал он, действительно, сжато и не очень понятно.

    Теперь он — классик, основоположник. А кто он был тогда, при жизни? Студент, революционер, скандалист (да, ходил на митинги республиканцев и потом сидел в кутузке).

    Так что не стоит судить об учёных и о «пользе» только по «внешним признакам».
  • Как можно защитить диссертацию по QA в России?
    0
    Прекрасно! Но какие же _научные_ достижения в области _тестирования_ имеются у Дмитрия Маевского? Вполне возможно, что он замечательный учёный. Но что мы видим здесь? Решение инженерной задачи. Может быть у него есть много научных трудов в этой области, но почему Вы ссылаетесь не на них, а на выступление на конференции?

    Ну и ключевой вопрос, который, заметьте, не я первый задал: Дмитрий, что конкретно для Вас, как для тестировщика, дал этот доклад? Что Вы начали использовать уже сегодня или завтра?

    А второй вопрос: даже если ответ на предыдущий вопрос «ничего не использую и вряд ли буду» — умаляет ли это достижения людей, которые проделали исследовательскую работу и может быть их результатами кто-нибудь другой сможет воспользоваться?
  • Как можно защитить диссертацию по QA в России?
    0
    Ну это может быть, мне честно говоря достаточно всё равно — т. или ф.-м. или даже к. (то есть компьютерных наук). Люди исследуют некоторую область — а как она будет классифицирована — это совершенно отдельная история.
  • Как можно защитить диссертацию по QA в России?
    +1
    Используемые обозначения существуют в этой области уже давно, это не оригинальное изобретение авторов, погуглите по словам ioco relations. Это вполне «классическая» дисциплина.

    Суть манускрипта состоит в том, что предложена более общая, чем ioco-модель, которая позволяет формально описывать такие системы, которые ioco-модель описать не в состоянии. Вот эта проблема и решена — как можно формально описывать такого рода системы.
  • Как можно защитить диссертацию по QA в России?
    0
    Математики там хватает. Для наглядности рекомендую сразу посмотреть более позднюю монографию 2008 года (где, правда, Петренко в соавторах нет, но идеи развиваются те же самые и написана монография сотрудниками его отдела) Теория соответствия для систем с блокировками и разрушением
  • Как можно защитить диссертацию по QA в России?
    0
    Весьма утилитарное отношение к науке. Не всё и не сразу имеет прикладную ценность (приносит пользу).

    Майкл Болтон — популяризатор, а не учёный. Кем Кэнер — тоже отличный популяризатор, но и учёный тоже. Однако многие ли его научные труды Вы читали или хотя бы можете назвать?

    С другой стороны, загляните на сайт, например, кафедры высшей алгебры МГУ, посмотрите на темы исследований, и задайтесь вопросом — они там вообще приносят пользу или только диссертации защищают? Ах, не приносят? Ну так разогнать дармоедов!
  • Что такое Selenium WebDriver?
    0
    И, да — WebDriver и Selenium RC это два принципиально разных инструмента. Я об этом писал в предыдущей статье, и ещё есть статья полуторагодовой давности, которая была написана сразу после выхода Selenium 2.0, в которой я постарался описать различия: «Раз селениум, два селениум»
  • Что такое Selenium WebDriver?
    0
    Умеет в IE, FF, Chrome.
    Драйверы для Opera, Safari, iOS, Android пока не поддерживают загрузку файлов.
  • Что такое Selenium WebDriver?
    0
    Хм… что-то хабр неудачно импорты отформатировал в коде…
  • Что такое Selenium WebDriver?
    0
    Файловые поля ввода заполняются точно так же, как и другие поля — методом sendKeys, в качестве параметра передаётся путь к файлу (диалог выбора файла при этом обрабатывается автоматически).

    Пример (код на Grrovy):

    import org.openqa.selenium.* import org.openqa.selenium.firefox.* import java.util.concurrent.* driver = new FirefoxDriver() driver.manage().timeouts().implicitlyWait(0, TimeUnit.SECONDS) driver.get("http://www.htmlcodetutorial.com/forms/_INPUT_TYPE_FILE.html") driver.findElementByName("upfile").sendKeys("c:\\windows\\win.ini") driver.findElementByCssSelector("td.content input[type='submit']").click()
  • Что такое Selenium WebDriver?
    0
    WebDriver умеет работать с диалогом загрузки файлов НА сервер (то есть умеет заполнять поля ввода типа file, но не умеет загружать файлы С сервера. Есть такая проблема. Но я же не утверждаю, что WebDriver идеален :)
  • Что такое Selenium?
    0
    >>> Вот тут решение вопроса, как можно автоматизировать нажатие кнопки save.

    Вы не путаете сохранение кода страницы и загрузку файла? Однако и то и другое выходит за пределы возможностей Selenium, поэтому…

    >>> Я вижу на stackoverflow постоянно встречаются вопросы, как закачать файл и многие советуют для этого Селениум.

    … те, кто даёт такие советы — лучше бы не давали. Желающим рекомендую ознакомиться вот с этой статьёй: How To Download Files With Selenium And Why You Shouldn’t @ Lazery Reflections. В ней описаны не все возможные способы загрузки файлов, но всё таки это наиболее удачное описание проблемы и способов её решения.
  • Что такое Selenium?
    0
    >>> Для них это единственный инструмент парсинга?

    Что Вы имеете в виду? Ещё раз: Selenium WebDriver — это драйвер браузера. Взаимодействие с веб-сервером, парсинг, рендеринг страниц, интерпретацию JavaScript-кода — всё это делает браузер. А Selenium всего лишь предоставляет интерфейс для управления браузером.

    >>> А почему джависты так любят Селениум?

    Правильнее спросить наоборот — почему те, кто разрабатывают тесты на Selenium, предпочитают Java?

    Причин как минимум две. Во-первых, реализация всех новых фич в Selenium сначала делается на Java, отлаживается, тестируется, и только после этого фича реализуется в клиентах на других языках. Почему в качестве основного языка выбран Java? Так исторически сложилось :)

    Во-вторых, для языка Java разработано больше разных расширений и надстроек над Selenium. Хотя для Ruby, скажем, их тоже немало.
  • Что такое Selenium?
    0
    1. В рамках проекта Selenium клиент для языка PHP не разрабатывается. Есть целых пять независимых разработок, они описаны вот в этой статье: element34.ca/blog/a-survey-of-the-php-and-selenium-landscape, но ни одна из них не является «официально рекомендованной».

    Я обычно пишу на Java, иногда на Ruby, изредка на Python. Поэтому про PHP вряд ли смогу помочь советом.

    2. Отправить последовательность команд Control-S можно (я думаю, Вы имели в виду именно это сочетание клавиш?) — driver.findElement(By.tagName(«body»)).sendKeys(Keys.CONTROL + «s»), но после этого появится диалоговое окно, с которым Selenium WebDriver уже работать не умеет, и придётся привлекать дополнительные библиотеки, с помощью которых можно ввести в это окно нужное имя файла и подтвердить сохранение.
  • Что такое Selenium?
    0
    1. Про «глюк»: попробуйте использовать новую экспериментальную стратегию ожидания, про неё написано внизу этой странички — code.google.com/p/selenium/wiki/FirefoxDriver

    2. С маками не помогу, не имею опыта работы с этой системой.

    3. Чтобы «сграбить все линки» достаточно использовать простейший поиск: driver.findElements(By.tagName(«a»)). Или Вы что-то иное имеете в виду? Загрузить все страницы, на которые ведут ссылки? Ну так это уже не задача Selenium, а Ваша задача — написать «граббер», используя библиотеку Selenium WebDriver.

    4. Метода для сохранения страницы нет. Есть метод для получения кода страницы — driver.getPageSource(). Только имейте в виду, что это уже будет не то, что было написано в оригинальном коде, а что-то типа «дампа DOM».
  • Что такое Selenium?
    0
    1. Используйте Selenium Grid. Если не хочется разворачивать кластер самостоятельно — запускайте в облаках.

    2. IE пока не получается запускать больше двух экземпляров на одной машине, это известная проблема. Мы надеемся, что когда разработчики из MS подключатся к проекту, удастся это решить.

    Браузеры Firefox и Chrome без особых проблем могут работать в количестве 5-10 штук на одной машине. Некоторые запускают и больше. У нас в баг-трекере есть даже жалоба на то, что «не удается запустить больше 200 браузеров на одной машине, пожалуйста, уберите это ограничение!» :)

    Зависаний при этом быть никаких не должно. Но некоторые штуки типа выпадающих меню и прочей динамики могут работать некорректно. Частично по вине Selenium, частично потому, что если браузер не в фокусе, то события срабатывают иначе, чем тогда, когда он в фокусе. Например, onblur вообще не срабатывает, это правильное документированное поведение браузера. Так что если есть AJAX — см. совет под номером 1.
  • Что такое Selenium?
    +1
    Оба можно. В рамках проекта Selenium помимо драйверов для реальных браузеров разрабатывается также драйвер для HtmlUnit, который, конечно, работает без всяких окошек.

    Кроме того, есть проект GhostDriver, который представляет собой независимую реализацию интерфейса WebDriver как раз для PhantomJS. Есть вероятность того, что в какой-то момент он войдёт в состав проекта Selenium. На данный момент GhostDriver проходит успешно чуть более 90% официальных тестов для WebDriver (последняя цифра, которую я видел, была 91.64%).

    Чем это лучше? Почему нельзя просто использовать PhantomJS? Можно, конечно. Вся фишка Selenium — в едином интерфейсе. Хотите — запускаете тесты в реальном браузере, хотите — запускаете те же самые тесты в PhantomJS через GhostDriver.
  • Что такое Selenium?
    0
    Это не имеет прямого отношения к инструментам семейства Selenium, задача запуска тестов как правило решается силами серверов сборки и непрерывной интеграции (Jenkins, TeamCity, TFS или ещё какого-нибудь). Поэтому вопрос к вашему серверу непрерывной интеграции — может ли он запускать тесты от лица разных пользователей?

    С другой стороны, не так важно, под каким пользователем запускаются тесты. Гораздо важнее, от лица какого пользователя запускается браузер. Поэтому — строим Selenium Grid, а в его узлах запускаем сервера Selenium от лица нужных пользователей. Теперь стартуем тесты, и они выполняются в браузерах, которые работают под нужной учёткой.
  • Что такое Selenium?
    0
    Интерфейс сервера непрерывной интеграции теперь здесь: ci.seleniumhq.org:8080/
    Кроме того, имеется альтернативный интерфейс: dashboard.ci.seleniumhq.org/

    Про драйвер Firefox можно почитать вот тут: selenium2.ru/news/59-marionette-is-the-future-of-firefoxdriver.html

    Передача драйверов в ведение компаний-вендоров имеет как плюсы, так и минусы. Плюсы в основном технические — они всё-таки лучше разбираются во внутренностях браузеров. Минусы в основном организационные, например — нецентрализованный баг-трекер, у каждого свой, это весьма неудобно.
  • Что такое Selenium?
    +1
    1) code.google.com/p/selenium/wiki/ChromeDriver
    и в частности
    code.google.com/p/selenium/wiki/ChromeDriver#Overriding_the_Chrome_binary_location

    2) Драйвер для Firefox при каждом запуске создаёт новый чистый профиль, поэтому долго стартует. Запустите браузер один раз, и используйте полученный инстанс драйвера во всех тестах.

    3) WebDriver автоматически дожидается загрузки страницы. Но если у вас AJAX — это не помогает. Ожидайте появления нужного элемента, прежде чем с ним работать. Не используйте sleep!

    4) Официальная документация для питона находится тут: selenium.googlecode.com/svn/trunk/docs/api/py/index.html
  • Что такое Selenium?
    –1
    Про продолжение обещать не буду, заглядывайте на сайт, посвященный selenium (ссылка у меня в профиле), более технические статьи я обычно публикую там.

    А на второй вопрос вкратце отвечу. Именно для этой цели предназначен Selenium Grid. Делаем кластер с пятью узлами. Для запуска тестов используем фреймворк, который умеет запускать тесты в параллельных потоках. Нацеливаем тесты на кластер — профит!

    Если свой кластер строить не хочется — можно запускать тесты в облаках.
  • Selenide: удобные тесты на Selenium WebDriver
    +1
    Я понимаю, что Вам очень хочется похвалить Sahi? :)
    Хороший инструмент, кто же спорит.
    Но всё-таки расскажите, в чём состоят заимствования?
  • Selenide: удобные тесты на Selenium WebDriver
    0
    Если учесть, что Selenium 2.0 (aka WebDriver) релизнулся впервые всего полтора года тому назад — сложно было его «давно пробовать», так что — наверняка о разных :)
  • Selenide: удобные тесты на Selenium WebDriver
    0
    Я имею в виду, что в дополнение к TestWatcher'у, который снимает скриншоты, было бы хорошо сделать аналоги для других тестовых фреймворков.
  • Selenide: удобные тесты на Selenium WebDriver
    +1
    Рекомендую ознакомиться вот с этой статьёй: How To Download Files With Selenium And Why You Shouldn’t, в ней обсуждаются различные варианты решения этой задачи.

    Я иногда использую ещё один подход, не описанный в этой статье — прокси между браузером и тестируемым приложением, который перехватывает запросы на загрузку файлов и сам их загружает, а в браузер отдаёт страничку «файл загружен, находится тут».
  • Selenide: удобные тесты на Selenium WebDriver
    0
    Молодцы, парни!

    Насколько я понял, пока реализовано только соединение с JUnit, планируете сделать варианты с другими тестовыми фреймворками?
  • Опубликован перевод документации по Selenium
    +1
    Только переводчики вошли во вкус — и вдруг документация кончилась, да? ;)