J'ai essayé ça
WebDriver driver = new ChromeDriver();
Mais je reçois l'erreur comme
Tests ayant échoué: setUp (com.TEST): le chemin d'accès à l'exécutable du pilote doit être défini par la propriété système webdriver.chrome.driver; pour plus d'informations, voir code ici . La dernière version peut être téléchargée à partir de Link
Comment faire en sorte que Chrome teste les scénarios de test Selenium-WebDriver?
Vous devez télécharger le pilote exécutable à partir de: ChromeDriver Download
Il vous suffit ensuite d'utiliser les éléments suivants avant de créer l'objet Pilote (déjà affiché dans le bon ordre):
System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver");
WebDriver driver = new ChromeDriver();
Ces informations ont été extraites du guide le plus utile de la documentation ChromeDriver .
Téléchargez la version mise à jour du pilote chrome à partir de Pilote Chrome Veuillez lire également la note de version Ici Si Chrome Browser est mis à jour, vous devez télécharger le nouveau pilote chormedriver à partir du lien ci-dessus, car il être compact avec la nouvelle version du navigateur.
public class chrome
{
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver");
WebDriver driver = new ChromeDriver();
driver.get("http://www.google.com");
}
}
Vous devez télécharger le chromeDriver dans un dossier et ajouter ce dossier dans votre variable PATH .Vous devrez redémarrer votre console pour que cela fonctionne.
Si vous utilisez homebrew sur un MacOS, vous pouvez utiliser la commande:
(EDIT) : brew tap homebrew/cask && brew cask install chromedriver
Cela devrait fonctionner correctement après cela, sans autre configuration.
Vous pouvez utiliser le code ci-dessous pour exécuter des scénarios de test dans Chrome à l'aide du pilote Web Selenium:
import Java.io.IOException;
import org.openqa.Selenium.WebDriver;
import org.openqa.Selenium.chrome.ChromeDriver;
public class ChromeTest {
/**
* @param args
* @throws InterruptedException
* @throws IOException
*/
public static void main(String[] args) throws InterruptedException, IOException {
// Telling the system where to find the Chrome driver
System.setProperty(
"webdriver.chrome.driver",
"E:/chromedriver_win32/chromedriver.exe");
WebDriver webDriver = new ChromeDriver();
// Open google.com
webDriver.navigate().to("http://www.google.com");
String html = webDriver.getPageSource();
// Printing result here.
System.out.println(html);
webDriver.close();
webDriver.quit();
}
}
Recherchez la dernière version de chromedriver
here . Une fois téléchargée, décompressez-la à la racine de votre installation de python, par exemple C:/Program Files/Python-3.5
, et le tour est joué. Vous n'avez même pas besoin de spécifier le chemin/ou ajoutez chromedriver
à votre chemin ou similaire ..__ Je viens de le faire sur une installation Python propre et cela fonctionne.
Téléchargez la dernière version du pilote chrome et utilisez ce code:
System.setProperty("webdriver.chrome.driver", " path of chromedriver.exe");
WebDriver driver= new ChromeDriver();
driver.manage().window().maximize();
Thread.sleep(10000);
driver.get("http://stackoverflow.com");
Toutes les réponses ci-dessus sont correctes. Voici un aperçu complet du problème et de sa solution.
Le constructeur de pilotes dans Selenium par exemple
WebDriver driver = new ChromeDriver();
recherche l'exécutable du pilote, dans ce cas le pilote chrome recherche l'exécutable du pilote chrome, au cas où le service ne pourrait pas trouver l'exécutable, l'exception est levée
c’est d’où vient l’exception (notez la méthode de l’état de contrôle)
/**
*
* @param exeName Name of the executable file to look for in PATH
* @param exeProperty Name of a system property that specifies the path to the executable file
* @param exeDocs The link to the driver documentation page
* @param exeDownload The link to the driver download page
*
* @return The driver executable as a {@link File} object
* @throws IllegalStateException If the executable not found or cannot be executed
*/
protected static File findExecutable(
String exeName,
String exeProperty,
String exeDocs,
String exeDownload) {
String defaultPath = new ExecutableFinder().find(exeName);
String exePath = System.getProperty(exeProperty, defaultPath);
checkState(exePath != null,
"The path to the driver executable must be set by the %s system property;"
+ " for more information, see %s. "
+ "The latest version can be downloaded from %s",
exeProperty, exeDocs, exeDownload);
File exe = new File(exePath);
checkExecutable(exe);
return exe;
}
Voici la méthode d'état de contrôle qui lève l'exception
/**
* Ensures the truth of an expression involving the state of the calling instance, but not
* involving any parameters to the calling method.
*
* <p>See {@link #checkState(boolean, String, Object...)} for details.
*/
public static void checkState(
boolean b,
@Nullable String errorMessageTemplate,
@Nullable Object p1,
@Nullable Object p2,
@Nullable Object p3) {
if (!b) {
throw new IllegalStateException(format(errorMessageTemplate, p1, p2, p3));
}
}
SOLUTION: définissez la propriété système avant de créer un objet de pilote comme suit
System.setProperty("webdriver.gecko.driver", "path/to/chromedriver.exe");
WebDriver driver = new ChromeDriver();
voici l'extrait de code (pour Chrome et Firefox) dans lequel le service de pilote recherche l'exécutable du pilote:
Chrome:
@Override
protected File findDefaultExecutable() {
return findExecutable("chromedriver", CHROME_DRIVER_EXE_PROPERTY,
"https://github.com/SeleniumHQ/Selenium/wiki/ChromeDriver",
"http://chromedriver.storage.googleapis.com/index.html");
}
FireFox:
@Override
protected File findDefaultExecutable() {
return findExecutable(
"geckodriver", GECKO_DRIVER_EXE_PROPERTY,
"https://github.com/mozilla/geckodriver",
"https://github.com/mozilla/geckodriver/releases");
}
où CHROME_DRIVER_EXE_PROPERTY = "webdriver.chrome.driver" et GECKO_DRIVER_EXE_PROPERTY = "webdriver.gecko.driver"
similaire est le cas pour les autres navigateurs, ce qui suit est la capture instantanée de la liste de la mise en oeuvre du navigateur disponible
Sur Ubuntu, vous pouvez simplement installer le paquetage chromium-chromedriver
:
apt install chromium-chromedriver
Sachez que cela installe également une version obsolète de Selenium. Pour installer le dernier sélénium:
pip install Selenium