Jenkins 有头模式运行selenium

        Jenkins如果是以启动服务方式安装的话(即可执行程序安装)默认运行selenium都是无头模式的。然而当selenium脚本中封装了其他的库的代码的话无头模式很容易失败,最近笔者碰到一个问题就是:笔者在selenium脚本中使用了pyautogui库来模拟键盘鼠标操作,但是selenium无头模式运行的话这些代码会报错!所以需要在Jenkins下有头模式运行。

        这里笔者分享一种方法可以让Jenkins以有头模式运行selenium。可以先装个Tomcat,然后在Tomcat中部署Jenkins,亲测这种方式是以有头模式运行的对用到非selenium的第三方库比较友好。需要注意一点的是Tomcat 9以上无法安装Jenkins,部署了也无法启动,具体描述Jenkins官网有说:

https://www.jenkins.io/doc/book/installing/servlet-containers/

Jenkins requires Servlet API 4.0 (Jakarta EE 8) with javax.servlet imports. Jenkins is incompatible with Servlet API 5.0 (Jakarta EE 9) or later with jakarta.servlet imports. Ensure that the Servlet API version of your chosen servlet container is compatible before running Jenkins.

Tomcat 9

Tomcat 9 is based on Servlet API 4.0 (Jakarta EE 8), which is the version of the servlet API required by Jenkins.

Later versions of Tomcat use newer versions of the Servlet API and are incompatible with Jenkins.

就是说Tomcat 9以上的用了 Servlet API 4.0以上的技术与Jenkins不兼容,Tomcat 9以上安装Jenkins各种报错,网上有说换到9可以但是没说具体原因,但是Jenkins官网说的很清楚了,所以建议用Tomcat 9来部署Jenkins。

Tomcat部署Jenkins也比较简单:把下载的Jenkins war包放到 Tomcat 这个${CATALINA_HOME}/webapps/目录下,然后启动Tomcat就行了~

还有个坑就是Tomcat部署,如果装的是JDK 11或以上版本的话会有很多坑,因为JDK 11没有自带JRE,需要到JDK安装目录用命令jlink.exe --module-path jmods --add-modules java.desktop --output jre自行生成,另外JRE环境变量路径配到JDK路径就阔以了~不然没JRE 安装Tomcat也是各种报错~

你可能感兴趣的:(jenkins,selenium,运维,tomcat)