截图服务器安装
聚宝的缩略图生成是依赖单独的缩略图服务器完成的,该服务器需要进行单独的安装部署。
安装步骤:
#安装Chrome浏览器
截图需要用到浏览器环境,需要安装Chrome浏览器。
- 可以通过访问这里 (opens new window)获取到对应操作系统的75.3770.80版本的chrome浏览器并进行安装。
- 对于linux系统中安装chrome,可以直接执行该shell脚本进行安装:chrome安装脚本。
#配置WebDriver
WebDriver是控制Chrome浏览器的驱动程序,下载chrome的webdriver:chromedriver,下载完毕以后,对于不同的操作系统,需要做不同的处理:
- 对于windows系统:需要将chromedriver放在系统路径下,一般为
c:\windows\system32
。 - 对于linux系统:一般需要将chromedriver放在
/usr/bin/
下,在chromedriver所属目录执行sudo mv chromedriver /usr/bin
即可。
#安装Selenium
根据需要,可以使用单机部署,也可以部署集群。首先需要安装jdk环境,至少需要jdk8环境,具体参见jdk环境安装
- 下载[selenium-server-standalone(opens new window)]
- 根据操作系统,从cmd或者bash进入它的目录,执行(将
xxx.xxx.xxx.xxx
替换为你的局域网IP地址)
java -Dwebdriver.chrome.driver="/path/to/chromedriver" -jar selenium-server-standalone.jar -role standalone -host xxx.xxx.xxx.xxx
当出现Selenium is up and running on port 4444
即可成功。
#配置截图服务器地址
在 系统设置 > 基本 > 外观设置 > 截图服务器地址 中配置截图服务器地址,详见截图服务器地址设置
#问题排查
#Driver info: driver.version: unknown
错误信息:
2019-09-10 12:10:53.860 [pool-1-thread-16] ERROR c.s.m.s.i.t.MetaServiceThumbnailImpl - 生成缩略图出现错误:连接selenium服务失败
org.openqa.selenium.WebDriverException: Error forwarding the new session Error forwarding the request No route to host (Host unreachable)
Build info: version: '3.8.1', revision: '6e95a6684b', time: '2017-12-01T18:33:54.468Z'
System info: host: 'yk-mbp', ip: '192.168.13.140', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.14.6', java.version: '1.8.0_202'
Driver info: driver.version: unknown
at org.openqa.grid.web.servlet.handler.RequestHandler.process(RequestHandler.java:118)
at org.openqa.grid.web.servlet.DriverServlet.process(DriverServlet.java:85)
at org.openqa.grid.web.servlet.DriverServlet.doPost(DriverServlet.java:69)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.seleniumhq.jetty9.servlet.ServletHolder.handle(ServletHolder.java:865)
at org.seleniumhq.jetty9.servlet.ServletHandler.doHandle(ServletHandler.java:535)
排查:
- Selenium启动参数是否带上了:
-Dwebdriver.chrome.driver="/path/to/chromedriver"
- 确保使用的是对应的平台的chromedriver。
- 确保使用的chromedriver与chrome版本相对应,其中72版本后的chrome,只需要大版本号对应即可,71及之前版本对应关系请参照版本对照表。
点击查看版本查询方法及版本对照表
查看chromedriver版本:
windows下运行chromedriver.exe
、linux下运行./chromedriver
,即可在运行信息中查看chromedriver版本,比如:Starting ChromeDriver 85.0.4183.83
,则当前版本号为85.0.4183.83
查看chrome版本:
windows下:在chrome的设置 > 帮助 > 关于Google Chrome中,查看当前版本号
linux下:运行google-chrome --version
,即可获取当前chrome版本号
版本对照表如下:
chromedriver版本 | chrome版本 |
---|---|
86.0.4240.22 | 86 |
85.0.4183.87 | 85 |
85.0.4183.83 | 85 |
85.0.4183.38 | 85 |
84.0.4147.30 | 84 |
83.0.4103.39 | 83 |
83.0.4103.14 | 83 |
81.0.4044.138 | 81 |
81.0.4044.69 | 81 |
81.0.4044.20 | 81 |
80.0.3987.106 | 80 |
80.0.3987.16 | 80 |
79.0.3945.36 | 79 |
79.0.3945.16 | 79 |
78.0.3904.105 | 78 |
78.0.3904.70 | 78 |
78.0.3904.11 | 78 |
77.0.3865.40 | 77 |
77.0.3865.10 | 77 |
76.0.3809.126 | 76 |
76.0.3809.68 | 76 |
76.0.3809.25 | 76 |
76.0.3809.12 | 76 |
75.0.3770.90 | 75 |
75.0.3770.8 | 75 |
74.0.3729.6 | 74 |
73.0.3683.68 | 73 |
72.0.3626.69 | 72 |
2.46 | 71-73 |
2.46 | 71-73 |
2.45 | 70-72 |
2.44 | 69-71 |
2.43 | 69-71 |
2.42 | 68-70 |
2.41 | 67-69 |
2.4 | 66-68 |
2.39 | 66-68 |
2.38 | 65-67 |
2.37 | 64-66 |
2.36 | 63-65 |
2.35 | 62-64 |
/path/to/chromedriver
是否是可执行的,Linux系统必须要:chmod +x /path/to/chromedriver
- 用浏览器访问Selenium地址,如
http://192.168.3.151:4444/
,看是否显示了正确的Selenium首页内容,其中包含版本信息,如Selenium Grid Hub v.3.141.59
- 确保系统设置 > 基本 > 外观设置 > 截图服务器地址正确设置,详见截图服务器地址设置