Ich habe Selen eingeführt, weil das Team vor Ort, für das ich abgeordnet wurde, manuell Testdaten auf dem Bildschirm erstellt hat. Da das System, für das ich verantwortlich bin, nur mit IE funktioniert, mache ich keine Testfälle mit IDE Ich habe den Fall mit Java mit WebDriver implementiert und den Browser bedient. Es dient auch als Memorandum und fasst Probleme und Verwendung zusammen.
windows10 64bit IE11 java 1.8.0_121 eclipse Neon.2 Release (4.6.2) selenium 2.53.1
Erstellen Sie ein neues Maven-Projekt mit Eclipse Aktivieren Sie beim Erstellen "Einfaches Projekt erstellen"
Ändern Sie pom.xml
pom.XML-Auszug
<dependencies>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>2.53.1</version>
</dependency>
</dependencies>
So schreiben Sie IEDriver-Grundeinstellungen
System.setProperty("webdriver.ie.driver","C:\\Jeder Ort\\IEDriverServer.exe");
WebDriver driver = new InternetExplorerDriver();
Hier finden Sie eine Referenz zur Verwendung des Treibers
python
Unexpected error launching Internet Explorer.
Protected Mode must be set to the same value (enabled or disabled) for all zones.
IE Browser Einstellungen für die Registerkarte Internetoptionen → Registerkarte Sicherheit → Stellen Sie den Schutzmodus für alle Zonen gleich ein
Sendkeys zum Eingeben von Text in den Browser sind ungewöhnlich langsam zu verwenden Ich habe die detaillierte Ursache nicht untersucht, aber es scheint der Fall zu sein, wenn die 64-Bit-Version von IEDriverServer verwendet wird.
Es scheint gelegentlich im IE aufzutreten. Ich konnte es mit der folgenden Beschreibung vermeiden.
python
WebElement element = driver.findElement(clickTarget);
element.sendKeys(Keys.CONTROL);
element.click();
Oder
new Actions(driver).click(element).build().perform();
Popup (Benachrichtigungsleiste), das beim Herunterladen einer Datei mit IE angezeigt wird In diesem Fall stoppt Selen. Es funktioniert nicht, auch wenn ich manuell darauf klicke. Mit IE11 konnte ich die Einstellungen im Browser nicht ändern. Erstellen Sie daher einen untergeordneten Thread und überlassen Sie den Download-Vorgang dem. Der übergeordnete Thread arbeitet hart daran, die Hauptverarbeitung am Laufen zu halten.
Tips
Wenn der übergeordnete Bildschirm einen untergeordneten Bildschirm in JS erstellt Vorgehensweise, wenn Sie sich auf den Unterbildschirm konzentrieren und ihn bedienen möchten.
python
//Halten Sie die Informationen zum übergeordneten Fenster
String currentHandle = driver.getWindowHandle();
//Schalten Sie den Fokus auf das untergeordnete Fenster
Set<String> windowHandles = driver.getWindowHandles();
for (String handle : windowHandles) {
if (!handle.equals(currentHandle)) {
driver.switchTo().window(handle);
}
}
//Kehren Sie zum übergeordneten Fenster zurück, wenn die Verarbeitung des untergeordneten Fensters abgeschlossen ist
driver.switchTo().window(currentHandle);
Nachdem ich eine Operation mit Selen bestellt habe, möchte ich warten, bis sie abgeschlossen ist. Nach der Suche möchte ich beispielsweise den folgenden Vorgang ausführen, nachdem die Suche abgeschlossen ist und die Liste angezeigt wird. Die folgenden Quellen warten darauf, dass ein Element mit einer ID-Liste auf dem Bildschirm angezeigt wird. Das Zeitlimit beträgt 10 Sekunden und eine Ausnahme tritt auf, wenn es überschritten wird.
python
//Standby-Objekt
WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(
ExpectedConditions.presenceOfElementLocated(
By.id("list")
)
);
python
WebElement element = driver.findElement(By.xpath("//input[@type='file']"));
element.sendKeys("./Datei.txt");
https://donow.jp/skillup/?p=776#i-7 http://qiita.com/tukiyo3/items/44f5b64cf222d9da1b5b http://bokuibi.blogspot.jp/2012/05/selenium-2.html http://qiita.com/nkns165/items/53d1afc17023d9ae3ebd
Recommended Posts