2017-07-07 4 views
0

En utilisant headless chrome et selenium je peux envoyer avec succès des clés à des sites Web sur mon Mac. Quand je porte le même code sur ma machine Linux, il se bloque cependant. La ligne incriminée est la suivante:Envoyer des clés en utilisant Selenium et sans tête Chrome

driver.find_element_by_xpath('//input[@id="username"]').send_keys(username) 

Et je reçois le message d'erreur suivant:

"an X display is required for keycode conversions, consider using Xvfb" 

Pourquoi ce ne fonctionne pas sur Linux?

Répondre

0

Ceci est un bug dans le chromedriver qui est détaillé here.

Selon le nouveau chef de file pour le conducteur chrome

La question est en ChromeDriver. Comme son nom l'indique, la commande sendKey envoie des traits de touches simulés à Chrome et ChromeDriver est responsable de la conversion de la chaîne de texte d'entrée en frappes correspondantes à envoyer à Chrome. Sous Linux, ChromeDriver utilise l'affichage X pour effectuer la conversion et échoue lorsque aucun affichage X n'est disponible.

Il a été corrigé récemment et sera publié dans v 2.31. Malheureusement, l'équipe de chrome ne rend pas publiques les versions nocturnes et il n'y a pas encore de date de sortie officielle.

En attendant, vous pouvez build your own chromedriver ou télécharger un fichier binaire prédéfini d'un tiers ... Vous trouverez un fichier docker et un fichier binaire de travail au this github.