[html] view plain copy print?
注意: 我试过用 centos 6.5 玩 Selenium, 但是很惨, centos6.5 安装配置非常麻烦, 而 centos7 安装过程很顺畅, 原因可能是 centos6.5 对于 chrome 和 chromedriver 的支持非常之不好, 准确的说不支持 chrome 而必须采用 chromium,chromium 的安装很不顺畅, 所以, 建议玩 centos6.5 的, 可以升级或者重新上一台 centos7 服务器吧!
注意: 我试过用 centos 6.5 玩 Selenium, 但是很惨, centos6.5 安装配置非常麻烦, 而 centos7 安装过程很顺畅, 原因可能是 centos6.5 对于 chrome 和 chromedriver 的支持非常之不好, 准确的说不支持 chrome 而必须采用 chromium,chromium 的安装很不顺畅, 所以, 建议玩 centos6.5 的, 可以升级或者重新上一台 centos7 服务器吧!
在无界面的 CentOS7 上安装 Selenium+Chrome, 并使用 facebook 的 php-webdriver 测试
https://www.yaosansi.com/post/install-selenium-chrome-on-centos/#系统环境 系统环境
- CentOS Linux 7 (Core)
- Operating System: CentOS Linux 7 (Core)
- Kernel: Linux 3.10.0-693.17.1.el7.x86_64
- Architecture: x86-64
https://www.yaosansi.com/post/install-selenium-chrome-on-centos/#安装-chrome 安装 chrome
使用下面的命令, 在 root 用户下就可以安装最新的 Google Chrome:
yum install https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
https://www.yaosansi.com/post/install-selenium-chrome-on-centos/#安装-selenium 安装 selenium
在 seleniump 官网 http://selenium-release.storage.googleapis.com/index.html 找到最新的版本, 下载
selenium-server-standalone-X.XX.X.jar
文件
注意: 最新的版本 3.11, 不是 3.9(2018 年 3 月)
selenium-server-standalone-3.11.0.jar
https://www.yaosansi.com/post/install-selenium-chrome-on-centos/#selenium服务初始化 selenium 服务初始化
将上述 selenium 放入一个文件夹中, 输入如下命令初始化
java -jar selenium-server-standalone-3.11.0.jar
注意, 需要 java8 环境, 可以参考 CentOS7 安装 java 运行环境 jdk https://www.yaosansi.com/post/install-java-jdk-on-centos
https://www.yaosansi.com/post/install-selenium-chrome-on-centos/#安装-chromerriver 安装 chromerriver
在 chromerriver 官网 https://sites.google.com/a/chromium.org/chromedriver/downloads 下载最新的 ChromeDriver 压缩包, 解压得到 chromedriver.exe 文件
chromedriver_linux64.zip 2018-03-20 15:22:39
将下载的文件解压, 放在如下位置
/usr/bin/chromedriver
给予执行权限
chmod +x /usr/bin/chromedriver
https://www.yaosansi.com/post/install-selenium-chrome-on-centos/#安装-XVFB 安装 XVFB
输入如下命令
- # yum install Xvfb -y
- # yum install xorg-x11-fonts* -y
新建在 / usr/bin/ 一个名叫 xvfb-chrom 的文件写入以下内容:
- vi /usr/bin/xvfb-chrome
- #!/bin/bash
- _kill_procs() {
- kill -TERM $chrome
- wait $chrome
- kill -TERM $xvfb
- }
- # Setup a trap to catch SIGTERM and relay it to child processes
- trap _kill_procs SIGTERM
- XVFB_WHD=${XVFB_WHD:-1280x720x16}
- # Start Xvfb
Xvfb :99 -ac -screen 0 $XVFB_WHD -nolisten tcp &
- xvfb=$!
- export DISPLAY=:99
- chrome --no-sandbox --disable-gpu$@ &
- chrome=$!
- wait $chrome
- wait $xvfb
添加执行权限
chmod +x /usr/bin/xvfb-chrome
查看当前映射关系
- ll /usr/bin/ | grep chrom
- -rwxr-xr-x 1 root root 7874704 Mar 20 14:55 chromedriver
- lrwxrwxrwx 1 root root 31 Mar 20 00:24 google-chrome -> /etc/alternatives/google-chrome
- lrwxrwxrwx 1 root root 32 Mar 20 14:30 google-chrome-stable -> /opt/google/chrome/google-chrome
更改 Chrome 启动的软连接
- ln -s /etc/alternatives/google-chrome /usr/bin/chrome
- rm -rf /usr/bin/google-chrome
- ln -s /usr/bin/xvfb-chrome /usr/bin/google-chrome
查看修改后的映射关系
- ll /usr/bin/ | grep chrom
- -rwxr-xr-x 1 root root 7874704 Mar 20 14:55 chromedriver
- lrwxrwxrwx 1 root root 31 Mar 20 00:24 chrome -> /etc/alternatives/google-chrome
- lrwxrwxrwx 1 root root 22 Mar 20 00:11 google-chrome -> /usr/bin/xvfb-chromium
- lrwxrwxrwx 1 root root 32 Mar 20 14:30 google-chrome-stable -> /opt/google/chrome/google-chrome
- -rwxr-xr-x 1 root root 432 Mar 20 00:09 xvfb-chrome
https://www.yaosansi.com/post/install-selenium-chrome-on-centos/#使用facebook的php-webdriver测试 使用 facebook 的 php-webdriver 测试
- get('https://www.baidu.com/');
- // wait until the page is loaded
- // $driver->wait()->until(
- // WebDriverExpectedCondition::titleContains('百度')
- // );
- // print the title of the current page
- echo "The title is'" . $driver->getTitle() . "'\n";
- // print the URI of the current page
- echo "The current URI is'" . $driver->getCurrentURL() . "'\n";
- // print the pagesource of the current page
- $html_selenium = $driver->getPageSource();
- echo $html_selenium;
- // close the browser
- $driver->quit();
来源: https://juejin.im/entry/5b2ca6316fb9a00e7747561a