J'utilise Selenium pour automatiser les tests. Mon application utilise exclusivement IE, elle ne fonctionnera pas sur les autres navigateurs.
Code:
import org.openqa.Selenium.ie.InternetExplorerDriver;
import org.openqa.Selenium.By;
import org.openqa.Selenium.WebDriver;
import org.openqa.Selenium.WebElement;
public class Test {
public static void main(String[] args) {
final String sUrl = "http://www.google.co.in/";
System.setProperty("webdriver.chrome.driver","C:\\Users\\vthaduri\\workspace\\LDCSuite\\IEDriverServer.exe");
WebDriver oWebDriver = new InternetExplorerDriver();
oWebDriver.get(sUrl);
WebElement oSearchInputElem = oWebDriver.findElement(By.name("q")); // Use name locator to identify the search input field.
oSearchInputElem.sendKeys("Selenium 2");
WebElement oGoogleSearchBtn = oWebDriver.findElement(By.xpath("//input[@name='btnG']"));
oGoogleSearchBtn.click();
try {
Thread.sleep(5000);
} catch(InterruptedException ex) {
System.out.println(ex.getMessage());
}
oWebDriver.close();
}
}
Et voici l'erreur que je reçois
Le chemin d'accès à l'exécutable du pilote doit être défini par la propriété système webdriver.ie.driver. pour plus d'informations, voir https://github.com/SeleniumHQ/Selenium/wiki/InternetExplorerDriver . La dernière version peut être téléchargée depuis http://www.seleniumhq.org/download/ 12 juin 2012 4:18:42 PM org.Apache.http.impl. client.DefaultRequestDirector tryExecute INFO: exception I/O (Java.net.SocketException) interceptée lors du traitement de la demande: Abandon de la connexion provoqué par le logiciel: échec de la recv 12 juin 2012 4:18:42 PM org.Apache.http .impl.client.DefaultRequestDirector tryExecute
Quelqu'un peut m'aider à ce sujet?
Vous aurez besoin du pilote InternetExplorer sur votre système. Alors téléchargez-le à partir de la source suggérée ( http://www.seleniumhq.org/download/ ) décompressez-le et placez-le quelque part où vous pourrez le trouver. Dans mon exemple, je supposerai que vous le placerez dans C:\Selenium\iexploredriver.exe
Ensuite, vous devez l'installer dans le système. Voici le code Java collé à partir de mon projet Selenium:
File file = new File("C:/Selenium/iexploredriver.exe");
System.setProperty("webdriver.ie.driver", file.getAbsolutePath());
WebDriver driver = new InternetExplorerDriver();
Fondamentalement, vous devez définir cette propriété avant d'initialiser le pilote
Le message d'erreur dit
"Le chemin d'accès à l'exécutable du pilote doit être défini par la propriété système webdriver.ie.driver;"
Vous définissez le chemin du pilote Chrome avec la propriété "webdriver.chrome.driver". Vous ne définissez pas l'emplacement du fichier lorsque vous utilisez InternetExplorerDriver. Pour ce faire, vous devez définir la propriété "webdriver.ie.driver".
Vous pouvez définir ces propriétés dans votre Shell, via maven ou votre IDE avec le -DpropertyName = Value
-Dwebdriver.ie.driver="C:/.../IEDriverServer.exe"
Vous devez utiliser des guillemets à cause d'espaces ou de barres obliques dans votre chemin sur les machines Windows, ou inversez les barres obliques de la même manière, il s'agit du préfixe d'échappement de chaîne.
Vous pouvez aussi utiliser
System.setProperty("webdriver.ie.driver","C:/.../IEDriverServer.exe");
dans votre code.
Je viens de mettre les fichiers de pilote directement dans mon projet pour ne pas obtenir de dépendance à ma machine locale.
final File file = new File("driver/chromedriver_2_22_mac");
System.setProperty("webdriver.chrome.driver", file.getAbsolutePath());
driver = new ChromeDriver();
Pour le printemps:
File inputFile = new ClassPathResource("\\chrome\\chromedriver.exe").getFile();
System.setProperty("webdriver.chrome.driver",inputFile.getCanonicalPath());
Vous devrez télécharger le fichier exécutable du pilote InternetExplorer sur votre système et le télécharger à partir du code source ( http://code.google.com/p/Selenium/downloads/list ) après le téléchargement, décompressez-le et mettez sur la place de quelque part dans votre ordinateur. Dans mon exemple, je le placerai dans D:\iexploredriver.exe
Ensuite, vous avez écrit ci-dessous le code dans votre classe principale Eclipse
System.setProperty("webdriver.ie.driver", "D:/iexploredriver.exe");
WebDriver driver = new InternetExplorerDriver();