Quelqu'un peut-il me dire comment utiliser le pilote Chrome dans la plate-forme Selenium pour Linux?
J'ai mon chrome à username/home/chromedriver
.
Mon code est:
System.setProperty("webdriver.chrome.driver", "/home/username/ChromeDriver/chromedriver");
driver = new ChromeDriver();
driver.get("facebook.com");
L'erreur que je reçois est:
org.openqa.Selenium.WebDriverException
: Impossible de lancer ou de se connecter à Chrome. Veuillez vérifier que ChromeDriver est à jour.Utilisation de Chrome binary at:
/opt/google/chrome/google-chrome
(AVERTISSEMENT: le serveur n'a fourni aucune information de trace de pile)
Depuis [la documentation officielle] ( https://github.com/SeleniumHQ/Selenium/wiki/ChromeDriver :
Exigences
Le ChromeDriver contrôle le navigateur à l'aide du cadre proxy d'automatisation de Chrome.
Le serveur s'attend à ce que vous ayez Chrome installé à l'emplacement par défaut pour chaque système:
OS Expected Location of Chrome ------------------------------------- Linux /usr/bin/google-chrome Mac /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome Windows XP %HOMEPATH%\Local Settings\Application Data\Google\Chrome\Application\chrome.exe Windows Vista C:\Users\%USERNAME%\AppData\Local\Google\Chrome\Application\chrome.exe
Pour les systèmes Linux, ChromeDriver attend
/usr/bin/google-chrome
pour être un lien symbolique vers le binaire Chrome binaire. Voir aussi la section sur en remplaçant le Chrome) .Commencer
Pour vous installer, commencez par télécharger le serveur pré-construit approprié. Assurez-vous que le serveur peut se trouver sur votre
PATH
ou spécifiez son emplacement via lewebdriver.chrome.driver
propriété système. Enfin, il vous suffit de créer une nouvelle instance ChromeDriver:WebDriver driver = new ChromeDriver(); driver.get("http://www.google.com");
Par conséquent, téléchargez la version de chromedriver dont vous avez besoin , décompressez-la quelque part sur votre PATH
(ou spécifiez le chemin d'accès via une propriété système), puis exécutez le pilote.
Nous avons installé avec succès
Sudo apt-get install unzip
wget -N http://chromedriver.storage.googleapis.com/2.10/chromedriver_linux64.Zip -P ~/Downloads
unzip ~/Downloads/chromedriver_linux64.Zip -d ~/Downloads
chmod +x ~/Downloads/chromedriver
Sudo mv -f ~/Downloads/chromedriver /usr/local/share/chromedriver
Change the directory to /usr/bin/chromedriver
Sudo ln -s /usr/local/share/chromedriver /usr/local/bin/chromedriver
Sudo ln -s /usr/local/share/chromedriver /usr/bin/chromedriver
Exécutez maintenant le script et ajoutez ce qui suit dans le fichier d'environnement.
Capybara.register_driver :chrome do |app| client = Selenium::WebDriver::Remote::Http::Default.new Capybara::Selenium::Driver.new(app, :browser => :chrome, :http_client => client) end
Capybara.javascript_driver = :chrome
Remarque: modifiez la version du pilote chrome en fonction de votre type de système d'exploitation, par exemple 32 bits ou 64 bits.
Pour moi, j'ai travaillé avec ces commandes:
Le code Selenium était quelque chose comme ça.
System.setProperty("webdriver.chrome.driver","/usr/bin/chromedriver");
WebDriver driver = new ChromeDriver();
driver.get("https://mvnrepository.com");
driver.close();
Vous pouvez voir un petit exemple de cet exemple
Pour linux, je télécharge le pilote chrome et le garde en tant que variable de chemin d'accès système (ou le place dans un dossier de chemin d'accès existant). Et à partir du code, j'utilise les moyens suivants (ajouter une propriété et lancer avec le chemin du pilote chrome)
System.setProperty("webdriver.chrome.driver", "/usr/local/bin/chromedriver");
ChromeDriverService service = new ChromeDriverService.Builder()
.usingDriverExecutable(new File("/usr/local/bin/chromedriver"))
.usingAnyFreePort()
.build();
try {
service.start();
} catch (IOException e) {
e.printStackTrace();
}
return new RemoteWebDriver(service.getUrl(), DesiredCapabilities.chrome());