Ответ 1
Можно запускать браузеры (Firefox, IE,...) через выделенный виртуальный рабочий стол, который поддерживается ОС Windows. Одна такая известная вспомогательная утилита для этой задачи - Безголовый селен для Windows.
Можно ли настроить Selenium на использование драйвера Firefox и без браузера без браузера в Windows?
Мне известны другие драйверы, работающие в Windows или Linux, но не в конкретном случае, упомянутом выше. Любая справочная информация (специальные способы ее достижения, ограничения и т.д.) Для чтения очень сильно урезана.
Привет,
Можно запускать браузеры (Firefox, IE,...) через выделенный виртуальный рабочий стол, который поддерживается ОС Windows. Одна такая известная вспомогательная утилита для этой задачи - Безголовый селен для Windows.
Вот как мы запускаем селен с помощью драйвера firefox в режиме безглавых окон на окнах.
Создайте расписание задач Windows, вы можете сделать это с помощью пользовательского интерфейса http://windows.microsoft.com/en-US/windows/schedule-task#1TC=windows-7
или с помощью следующей команды:
schtasks /Create /TN Automation /TR C:\automation\automated_regression.bat /SC ONSTART /RU Administrator /RP password /F /V1
в нашем случае автоматизация ant приведена в действие, поэтому automatic_regression.bat имеет что-то вроде этого
:myLoop
cd c:\automation
call ant_env.bat
call ant -f regression.xml
GOTO myLoop
где у параметра regression.xml есть типичные цели junit проекта selenium java
<property name="main.dir" location="./selweb" />
<property name="src.dir" location="${main.dir}/src" />
<property name="lib.dir" location="${main.dir}/lib" />
<property name="build.dir" location="${main.dir}/build" />
<property name="test.report" location="${main.dir}/testreport">
</property>
<path id="build.classpath">
<fileset dir="${lib.dir}">
<include name="**/*.jar" />
</fileset>
</path>
<target name="clean">
<delete dir="${build.dir}" />
<delete dir="${test.report}" />
</target>
<target name="make dir" depends="clean">
<mkdir dir="${build.dir}" />
<mkdir dir="${test.report}" />
</target>
<target name="compile" depends="clean, make dir">
<javac srcdir="${src.dir}" destdir="${build.dir}" debug="true">
<classpath refid="build.classpath" />
</javac>
</target>
<target name="junit" depends="clean, make dir,compile">
<loadfile property="LATEST" srcFile="LATEST" />
<junit printsummary="no" fork="true" haltonfailure="false" dir="${main.dir}">
<classpath>
<pathelement path="${build.dir}" />
<fileset dir="${lib.dir}">
<include name="**/*.jar" />
</fileset>
</classpath>
<formatter type="xml" />
<batchtest todir="${test.report}">
<fileset dir="${build.dir}">
<include name="**/tests/**/*.class" />
</fileset>
</batchtest>
</junit>
<junitreport todir="${test.report}">
<fileset dir="${test.report}">
<include name="**/*.xml"/>
</fileset>
<report format="noframes" todir="${test.report}/html" styledir="${main.dir}/style">
<param name="TITLE" expression="Selenium Test Results for build ${LATEST}"/>
</report>
<report format="frames" todir="${test.report}/html" styledir="${main.dir}/style"/>
</junitreport>
</target>
вы можете использовать регистратор для записи ant времени выполнения, например.
<record name="log\automation_${timestamp}.log" loglevel="verbose" append="false" />
используя это, вы можете следить за тем, что происходит в вашей безголовой автоматизации.
The ' characters around the executable and arguments are
not part of the command.
[junit] Test com.yourtests ... FAILED
[junit] Implicitly adding C:\automation\dep\apache-ant-1.8.4\lib\ant-launcher.jar;C:\automation\dep\apache-ant-1.8.4\lib\ant.jar;C:\automation\dep\apache-ant-1.8.4\lib\ant-junit.jar;C:\automation\dep\apache-ant-1.8.4\lib\ant-junit4.jar to CLASSPATH
.....
'org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner'
'com.yourtests'
'filtertrace=true'
'haltOnError=false'
'haltOnFailure=false'
'showoutput=false'
'outputtoformatters=true'
'logfailedtests=true'
'logtestlistenerevents=false'
'formatter=org.apache.tools.ant.taskdefs.optional.junit.XMLJUnitResultFormatter,c:\automation\selweb\testreport\TEST-com.yourtests'
'crashfile=c:\automation\junitvmwatcher2114698975676150832.properties'
'propsfile=c:\automation\junit4190343520192991051.properties'
Мы следовали этому подходу и работаем, даже снимки экрана берутся и вставляются в отчет ant -junit html.
Итак, суть в том, что вам нужно запустить свой селен через Windows Tasks Scheduler, и он будет работать в режиме безглавых. Я думаю, что что-то подобное можно сделать в linux с помощью cron, но я не пробовал его, чтобы увидеть, работает ли он.
В соответствии с последними событиями, можно запускать Chrome и Firefox в безголовом режиме без каких-либо внешних хаков.
Для Chrome:
https://www.youtube.com/watch?v=0gSDYRbtwmw
Для Firefox: