Au préalable, Chrome est déjà installé.
example.py
options = webdriver.ChromeOptions()
options.binary_location = '/usr/bin/google-chrome'
options.add_argument('--headless')
options.add_argument('--disable-gpu')
options.add_argument('--no-sandbox')
options.add_argument('--window-size=1200x600')
Service pour démarrer plus rapidement que le démarrage normalexample.py
#Démarrage du service
service = Service(executable_path='/usr/local/bin/chromedriver')
service.start()
#Connectez-vous à Chrome
driver = webdriver.Remote(service.service_url, desired_capabilities=options.to_capabilities())
Il ne vous reste plus qu'à lancer Slenium comme d'habitude.
L'erreur suivante peut se produire dans l'environnement CUI
error.log
selenium.common.exceptions.WebDriverException: Message: unknown error: an X display is required for keycode conversions, consider using Xvfb
(Session info: headless chrome=59.0.3071.86)
(Driver info: chromedriver=2.29.461571 (8a88bbe0775e2a23afda0ceaf2ef7ee74e822cc5),platform=Linux 4.8.0-49-generic x86_64)
Cela s'est produit lorsque j'ai exécuté la méthode sendKeys ().
Cela peut être évité en entrant des caractères, etc. avec JavaScript au lieu de sendKeys ().
Si vous obtenez une autre erreur, vous pouvez probablement l'éviter en exécutant JavaScript.
example.py
# driver.get_element_by_css_selector('hoge').sendKeys('fuga')Déclenche une exception
def _set_value_for_element(selector: str, value: str):
return 'document.querySelector("{selector}").setAttribute("value", "{value}")'.format(selector=selector, value=value)
driver.get(url)
# sendKeys()J'obtiens une exception lorsque j'exécute JS
driver.execute_script(_set_value_for_element(user_name_selector, user_name))
driver.execute_script(_set_value_for_element(user_password_selector, user_password))
driver.find_element_by_css_selector(login_button_selector).click()
Recommended Posts