avant J'ai fait un processus d'exécution périodique avec Selenium et Python Je l'ai fait, mais cela a cessé de fonctionner avant que je ne le sache ... Donc, même si je reconstruis l'environnement avec le dernier Firefox et le sélénium, cela ne fonctionne pas. (Besoin d'un pilote gecko? Implicitly_wait ne fonctionne pas? Centos6 ne fonctionne pas? Vous ne pouvez pas fonctionner en parallèle?
Donc, je suis passé à CentOS 7 et Chrome et j'ai essayé de créer l'environnement.
Selenium
installation de sélénium
yum install python-pip
pip install selenium
Xvfb
Installation de Xvfb
yum install xorg-x11-server-Xvfb
Créer un service Xvfb
vim /usr/lib/systemd/system/Xvfb.service
/usr/lib/systemd/system/Xvfb.service
[Unit]
Description=Virtual Framebuffer X server for X Version 11
[Service]
Type=simple
EnvironmentFile=-/etc/sysconfig/Xvfb
ExecStart=/usr/bin/Xvfb $OPTION
ExecReload=/bin/kill -HUP ${MAINPID}
[Install]
WantedBy=multi-user.target
Créer un fichier de configuration de variable d'environnement Xvfb
vim /etc/sysconfig/Xvfb
/etc/sysconfig/Xvfb
# Xvfb Enviroment File
OPTION=":1 -screen 0 1366x768x24"
Démarrer le service Xvfb
systemctl enable Xvfb
systemctl start Xvfb
Chrome
Créer un fichier de référentiel Chrome
vim /etc/yum.repos.d/google-chrome.repo
bash:/etc/yum.repos.d/google-chrome.repo
[google-chrome]
name=google-chrome
baseurl=http://dl.google.com/linux/chrome/rpm/stable/$basearch
enabled=1
gpgcheck=1
gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub
google-chrome-installation stable
yum install google-chrome-stable
Pour l'affichage japonais
Installation de polices japonaises
yum install ipa-pgothic-fonts.noarch
ChromeDriver - WebDriver for Chrome : Downloads Téléchargez le pilote approprié à partir de. Cette fois, la version 2.29.
Installation du pilote Chrome
wget http://chromedriver.storage.googleapis.com/2.29/chromedriver_linux64.zip
unzip chromedriver_linux64.zip
mv chromedriver /usr/local/bin
rm chromedriver_linux64.zip
J'ai essayé d'incorporer le contenu de construction ci-dessus dans l'outil de gestion de configuration "itamae". Si vous aimez, s'il vous plaît. => https://github.com/kotanbo/itamae-selenium-centos7 (Le modèle de CentOS6 est décrit dans certains (Xvfb), mais j'ai abandonné la construction avec CentOS6 ...)
ChromeDriver - WebDriver for Chrome : Getting started Voici un exemple en référence à.
exemple de python
# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import NoAlertPresentException
import os, time, datetime, re, util, sys
import selenium.webdriver.chrome.service as service
class Sample():
def __init__(self):
self.aservice = service.Service('/usr/local/bin/chromedriver')
self.aservice.start()
capabilities = {'chrome.binary': '/usr/bin/google-chrome-stable', "chromeOptions": {"args": ['--no-sandbox']}}
self.driver = webdriver.Remote(self.aservice.service_url, capabilities)
self.driver.implicitly_wait(3)
self.base_url = "http://example.jp/"
def __del__(self):
self.driver.close()
def sample(self):
driver = self.driver
try:
driver.get(self.base_url + "/home")
driver.find_element_by_xpath("//a[@id='LoginButton']/img").click()
except:
finally:
sample = Sample()
sample.sample()
échantillon cron
0 9 * * * export DISPLAY=localhost:1.0; python /root/selenium/sample.py
0 9 * * * export DISPLAY=localhost:1.0; python /root/selenium/sample.py
0 4 * * * pkill -KILL -f chromedriver
Démarrez Xvfb en tant que démon avec systemd Installer Chrome sur CentOS 7
Recommended Posts