- Примечание: я пытался играть в Selenium с centos 6.5, но это было убого. Установка и настройка centos6.5 была очень хлопотной, в то время как процесс установки centos7 был очень плавным. Причина может быть в том, что поддержка centos6.5 для хром и хромдрайвер очень плохие, если быть точным Он не поддерживает хром и должен использовать хром Установка хрома не гладкая, поэтому рекомендуется играть в centos6.5, вы можете обновить или переустановить сервер centos7!
注意:我试过用centos 6.5玩Selenium,但是很惨,centos6.5安装配置非常麻烦,而centos7安装过程很顺畅,原因可能是centos6.5对于chrome和chromedriver的支持非常之不好,准确的说不支持chrome而必须采用chromium,chromium的安装很不顺畅,所以,建议玩centos6.5的,可以升级或者重新上一台centos7服务器吧!
Установите Selenium+Chrome на CentOS7 без интерфейса и используйте php-webdriver facebook для тестирования.
системная среда
CentOS Linux 7 (Core)
1
2
3
|
Operating System: CentOS Linux 7 (Core)
Kernel: Linux 3.10.0-693.17.1.el7.x86_64
Architecture: x86-64
|
установить хром
Используйте следующую команду, чтобы установить последнюю версию Google Chrome под пользователем root:
1
|
yum install https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
|
установить селен
существует официальный сайт селенумпНайдите последнюю версию, скачайтеselenium-server-standalone-X.XX.X.jar
документ
Примечание. Последняя версия — 3.11, а не 3.9 (март 2018 г.)
selenium-server-standalone-3.11.0.jar
инициализация службы селена
Поместите вышеуказанный селен в папку и введите следующую команду для инициализации
java -jar selenium-server-standalone-3.11.0.jar
Обратите внимание, что требуется среда java8, вы можете обратиться кCentOS7 устанавливает среду выполнения Java JDK
установить хромерривер
существует официальный сайт хромерриверЗагрузите последнюю версию zip-пакета ChromeDriver и разархивируйте его, чтобы получить файл chromedriver.exe.
chromedriver_linux64.zip 2018-03-20 15:22:39
Разархивируйте загруженный файл и поместите его в следующее место
/usr/bin/chromedriver
дать разрешение на выполнение
chmod +x /usr/bin/chromedriver
Установить XVFB
Введите следующую команду
1
2
|
# yum install Xvfb -y
# yum install xorg-x11-fonts* -y
|
Создайте новый файл с именем xvfb-chrom в /usr/bin/ и напишите следующее:
vi /usr/bin/xvfb-chrome
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
#!/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
1
2
3
|
-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
1
2
3
|
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
1
2
3
4
5
|
-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
|
Протестируйте с помощью php-webdriver facebook
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
<?php
// An example of using php-webdriver.
// Do not forget to run composer install before and also have Selenium server started and listening on port 4444.
namespace Facebook\WebDriver;
use Facebook\WebDriver\Remote\DesiredCapabilities;
use Facebook\WebDriver\Remote\RemoteWebDriver;
require_once('vendor/autoload.php');
// start Chrome with 5 second timeout
$host = 'http://localhost:4444/wd/hub'; // this is the default
$capabilities = DesiredCapabilities::chrome();
$driver = RemoteWebDriver::create($host, $capabilities, 5000);
// navigate to 'http://www.baidu.com/'
$driver->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(); |