Zeichnen Sie Aktionen mit Selen
Ich habe einen semi-vage Frage über Selen. Ich habe entdeckt, dass ein paar verschiedene Möglichkeiten, um Aktionen durchzuführen, die mit der FirefoxDriver. Was ich tun müssen, wiederholen Sie die Aktionen, die ein Benutzer durchführt, der auf eine web-Seite (Klick auf den link, überprüfen einer checkbox, etc.). Gibt es irgendeine Methode oder Kombination von Methoden, die es mir erlauben, "record" - die Aktionen des Benutzers? Hier ist was ich bisher zum ausführen von Aktionen (Sie werden bemerken, ich habe versucht, mit der WebDriverBackedSelenium und Aktionen-Klassen zum ausführen von Aktionen)
import java.util.List;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriverBackedSelenium;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.interactions.Action;
public class MyReplayer {
public static void main(String[] args) throws Exception {
//The Firefox driver supports javascript
FirefoxDriver driver = new FirefoxDriver();
driver.get("http://www.cs.umd.edu");
List<WebElement> elements = driver.findElements(By.tagName("a"));
//WebDriverBackedSelenium driverBacked = new WebDriverBackedSelenium(driver, "http://www.cs.umd.edu");
Actions builder = new Actions(driver);
Action clickLink = builder.click(elements.get(100)).build();
clickLink.perform();
//driverBacked.click("document.getElementsByTagName('a')[100]");
}
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Stieß ich auf Huxley. Es ermöglicht die Aufnahme und Wiedergabe von Anwender-Aktionen. Ich fand diese Frage in der Suche nach, wie Sie es gemacht haben, hatten aber zum resort auf den Quellcode.
Linien 98-154 von huxley/run.py definieren Sie die record-Funktion. Es nutzt webdirvier Sie einige js auf der Seite, die fügt einen event-Listener. Es fügt auch eine Funktion zum zurückgeben der Ereignisse.
Lesen Sie die Ereignisse der js-Funktion aufgerufen wird
Dann die Ereignisse gespeichert werden, in einer Weise, die scheint anwendungsspezifisch.
Sorry, ich habe keine Java-code. Ich hoffe, das hilft.
Können Sie die Selenium IDE Addon für Firefox und exportieren Sie die generierten Tests für die Webdriver. Es muss nicht ausdrücklich sagen FirefoxDriver, aber die Methoden, das Aussehen der Benutzeroberfläche ähnlich zu dem, was du gepostet hast. Ich hoffe, das hilft.
Ich arbeite derzeit an einem Projekt, dass nicht so etwas wie dieses: https://github.com/hristo-vrigazov/selenium-record-replay
Es funktioniert, indem Sie einen proxy zwischen den browser und die Anwendung, und injizieren von javascript, das hört sich für Aktionen, die Sie definiert haben. Siehe zum Beispiel https://github.com/hristo-vrigazov/selenium-record-replay/blob/master/terminator-cli/src/main/java/browser/Main.java#L74
Sich das Projekt noch in einem sehr frühen Stadium, aber es kann verwendet werden, auch jetzt. Derzeit nur Chrome unterstützt wird, aber das werde ich bald hinzufügen, die andere Browser als auch.
Disclaimer: ich bin der Ersteller und Betreuer des Projekts