[JAVA] Selenid-Optionsliste

Vorwort

Bei der Erstellung eines automatisierten Tests mit Selenide besteht die Möglichkeit, das Verhalten zu ändern, indem Selenide einfach einen Parameter ohne Codierung zugewiesen wird. Wenn Sie diese kennen und verwenden, können Sie unnötige Codierungen vermeiden. Daher ist es sicherer, bei der Verwendung von Selenide im Voraus Bescheid zu wissen.

Der Prozess des tatsächlichen Ladens der Optionen ist in SelenideConfig.java geschrieben. Schauen wir uns also den Code in SelenideConfig an. Es enthält auch eine kurze Erklärung und persönliche Eindrücke, die auf dem Inhalt des Dokuments und den Erfahrungen basieren, die ich gemacht habe. Entschuldigung, wenn ich falsch liege.

Annahme

Diese Erklärung basiert auf Version 5.7 von Selenid, und auf die Erklärung durch das offizielle Dokument kann auch auf der folgenden Seite verwiesen werden. https://selenide.org/javadoc/current/com/codeborne/selenide/Configuration.html

Optionsliste

selenide.browser Nutzung ★★★ Sie können angeben, welcher Browser verwendet werden soll. Dies ist praktisch, da Sie beim Testen mit mehreren Browsern den Browser nicht im Code angeben müssen. Wählen Sie aus "Chrom", "Firefox", "Legacy_Firefox" (bis ESR 52), "dh", "Oper", "Rand".

  private String browser = System.getProperty("selenide.browser", CHROME);

selenide.headless Nutzung ★ Sie können auch im Headless-Modus laufen. Ich denke jedoch, dass es sicherer ist, dies als E2E-Test zu vermeiden. Soll es zum Schaben verwendet werden? Es scheint nur mit Chrome (59+) und Firefox (56+) zu funktionieren.

  private boolean headless = Boolean.parseBoolean(System.getProperty("selenide.headless", "false"));

selenide.remote Nutzung ★ Diese Einstellung scheint bei Verwendung von RemoteWebDriver erforderlich zu sein, z. B. bei Verwendung von Selenium Grid. Ich habe es nicht verwendet, da der Test an mehreren Terminals von der Jenkins-Pipeline durchgeführt wird.

  private String remote = System.getProperty("selenide.remote");

selenide.browserSize Nutzung ★★★ Sie können auch die Fenstergröße angeben. Ich denke, es gibt Tests, die die Fenstergröße ändern, daher ist es praktisch, weil Sie es mit Parametern ändern können. Ob es mit der garantierten Auflösung oder mit einer höheren Auflösung usw. funktioniert Dies ist auch wichtig für die Durchführung einheitlicher Tests, die nicht vom Testausführungsterminal abhängen.

  private String browserSize = System.getProperty("selenide.browserSize", "1366x768");

selenide.browserVersion Nutzung ★★★ Es scheint, dass Sie auch die Version des Browsers angeben können. In der Dokumentation steht (für Internet Explorer).

  private String browserVersion = System.getProperty("selenide.browserVersion");

selenide.browserPosition Nutzung ★ Sie können auch die Browserposition beim Start angeben. Ich kann mir nicht viele Verwendungszwecke vorstellen.

  private String browserPosition = System.getProperty("selenide.browserPosition");

selenide.startMaximized Nutzung ★★ Sie können wählen, ob die Browsergröße beim Starten des Browsers maximiert werden soll. Wenn Sie es maximieren, wird der sichtbare Bereich erweitert und das zu bedienende Element wird einfach angezeigt, sodass das Bestehen des Tests in der Regel einfacher ist. Die Tatsache, dass die Browsergröße von dem Terminal abhängt, das den Test ausführt, ist jedoch im Hinblick auf die Glaubwürdigkeit der Testergebnisse etwas subtil.

  private boolean startMaximized = Boolean.parseBoolean(System.getProperty("selenide.startMaximized", "false"));

selenide.driverManagerEnabled Nutzung ★★ Sie können wechseln, ob der Treiber automatisch heruntergeladen werden soll oder nicht. Basic On ist in Ordnung, aber wenn Sie es nicht herunterladen müssen, können Sie die Testausführungszeit verkürzen. Ich denke, dass es auch eine Ameise ist, wenn die Testausführung nach einem engen Zeitplan erforderlich ist Weitere Informationen zur Konfiguration von WebDriverManager finden Sie unter https://github.com/bonigarcia/webdrivermanager.

  private boolean driverManagerEnabled = Boolean.parseBoolean(System.getProperty("selenide.driverManagerEnabled", "true"));

selenide.browserBinary Nutzung ★ Ich habe es nicht verwendet, aber es scheint, dass ich den Pfad zum Treiber angeben kann. Das Dokument besagt, dass es nur für Chrome, Firefox und Opera funktioniert. Wenn man sich jedoch den Code ansieht, scheint es, dass es mit IE und Safari funktioniert.

  private String browserBinary = System.getProperty("selenide.browserBinary", "");

selenide.pageLoadStrategy Nutzung ★★ Sie können festlegen, wie ermittelt werden soll, wann die Seite vollständig geladen wurde. normal: return after the load event fires on the new page (it's default in Selenium webdriver); eager: return after DOMContentLoaded fires; none: return immediately

Im Fall von "normal" ist es am konservativsten, da es wartet, bis das Ladeereignis ausgelöst wird. Wenn Sie von nun an einen Test erstellen, kann es sinnvoll sein, sowohl Stabilität als auch Geschwindigkeit zu erreichen, indem Sie "eifrig" auswählen, das wartet, bis der DOM-Messwert abgeschlossen ist. Keiner ist nicht praktisch, weil er überhaupt nicht wartet.

  private String pageLoadStrategy = System.getProperty("selenide.pageLoadStrategy", "normal");

selenide.baseUrl Nutzung ★★★ Beim Öffnen einer Seite mit Selenide.open () wird die hier festgelegte URL geöffnet. Dies ist nützlich, wenn mehrere Umgebungen getestet werden müssen, z. B. Entwicklung und Staging. Geben Sie normalerweise den Host, die Domäne und sogar den Port an.

  private String baseUrl = System.getProperty("selenide.baseUrl", "http://localhost:8080");

selenide.timeout Nutzung ★★★ Sie können die Wartezeit angeben, wenn Sie ein Element mit der Methode should oder ähnlichem überprüfen. Wenn die zu testenden Umgebungsspezifikationen niedrig sind und die Reaktion schlecht ist, können Sie den Test stabilisieren, indem Sie die Zeitüberschreitungszeit ändern.

  private long timeout = Long.parseLong(System.getProperty("selenide.timeout", "4000"));

selenide.pollingInterval Nutzung ★ Sie müssen es nicht angeben. Dies ist das Prüfintervall beim Prüfen von Elementen.

  private long pollingInterval = Long.parseLong(System.getProperty("selenide.pollingInterval", "200"));

selenide.holdBrowserOpen Nutzung ★ Sie können das Fenster geöffnet lassen, wenn der Test beendet ist. Es kann verwendet werden, um zu untersuchen, wann ein Testlauf fehlschlägt. Da Sie jedoch das Fenster schließen müssen, ist es grundsätzlich besser, diese Option nicht zu verwenden, wenn die Capture-Erfassung ersetzt werden kann.

  private boolean holdBrowserOpen = Boolean.getBoolean("selenide.holdBrowserOpen");

selenide.reopenBrowserOnFail Nutzung? Dem Dokument zufolge scheint es eine Option zu sein, erneut zu öffnen, wenn der Browser aufgrund von Hängen, Unterbrechungen und unerwartetem Schließen geschlossen wird. Selbst wenn er erneut geöffnet wird, wird der Vorgang danach fortgesetzt.

  private boolean reopenBrowserOnFail = Boolean.parseBoolean(System.getProperty("selenide.reopenBrowserOnFail", "true"));

selenide.clickViaJs Nutzung ★ Es scheint, dass Sie wählen können, ob Sie mit dem Webdriver auf das Element klicken oder es mit js realisieren möchten. ATTENTION! Automatic WebDriver waiting after click isn't working in case of using this feature. Es ist auch geschrieben, daher denke ich nicht, dass es notwendig ist, es zu ändern, es sei denn, es gibt einen Grund.

  private boolean clickViaJs = Boolean.parseBoolean(System.getProperty("selenide.clickViaJs", "false"));

selenide.screenshots Nutzung ★★★ Gibt an, ob Sie einen Druck ausüben sollen, wenn der Test fehlschlägt. Als Beweis dafür, dass der Test fehlschlägt und Probleme mit dem Testcode untersucht werden, ist es gut, erfassen zu können. Daher ist es gut, die Notwendigkeit des Speicherns der Erfassung mit dem Parameter umschalten zu können. ..

  private boolean screenshots = Boolean.parseBoolean(System.getProperty("selenide.screenshots", "true"));

selenide.savePageSource Nutzung ★★★ Da Sie den HTML-Code zur Laufzeit abrufen können, ist dies auch hilfreich, um zu untersuchen, wann ein Test fehlschlägt.

  private boolean savePageSource = Boolean.parseBoolean(System.getProperty("selenide.savePageSource", "true"));

selenide.reportsFolder Nutzung ★★

  private String reportsFolder = System.getProperty("selenide.reportsFolder", "build/reports/tests");

selenide.savePageSource Nutzung ★★ Sie können angeben, wo die Datei heruntergeladen werden soll.

  private String downloadsFolder = System.getProperty("selenide.downloadsFolder", "build/downloads");

selenide.reportsUrl Nutzung ★★ Nützlich in Kombination mit CI. If it's given, names of screenshots are printed as "http://ci.mycompany.com/job/my-job/446/artifact/build/reports/tests/my_test.png " - it's useful to analyze test failures in CI server. Optional: URL of CI server where reports are published to. In case of Jenkins, it is "BUILD_URL/artifact" by default.

  private String reportsUrl = new CiReportUrl().getReportsUrl(System.getProperty("selenide.reportsUrl"));

selenide.fastSetValue Nutzung ★★ Sie können auswählen, ob der Wert mit Javascript in das Eingabefeld eingegeben werden soll, oder die Selenium-Funktion "sendKey" verwenden. Es scheint, dass die Eingabe mit Javascript schneller ist, daher sollten Sie überlegen, ob Sie sich Gedanken über die Geschwindigkeit machen.

  private boolean fastSetValue = Boolean.parseBoolean(System.getProperty("selenide.fastSetValue", "false"));

selenide.versatileSetValue Nutzung ★ Es scheint, dass sich die Methoden 'setValue' und 'val' je nach Art des tatsächlichen Elements wie 'selectOptionByValue', 'selectRadio' verhalten können.

  private boolean versatileSetValue = Boolean.parseBoolean(System.getProperty("selenide.versatileSetValue", "false"));

selenide.fileDownload Nutzung ★ Sie können festlegen, ob beim Herunterladen von Dateien der Proxyserver durchlaufen werden soll.

  private FileDownloadMode fileDownload = FileDownloadMode.valueOf(System.getProperty("selenide.fileDownload", HTTPGET.name()));

selenide.proxyEnabled Nutzung ★ Sie können festlegen, ob der Browser über den Proxyserver ausgeführt werden soll.

  private boolean proxyEnabled = Boolean.parseBoolean(System.getProperty("selenide.proxyEnabled", "false"));

selenide.proxyHost Nutzung ★ Sie können den Host für die Ausführung des Browsers über den Proxyserver festlegen. Es wird angenommen, dass proxyEnabled == true ist.

  private String proxyHost = System.getProperty("selenide.proxyHost", "");

selenide.proxyPort Nutzung ★ Sie können die Portnummer festlegen, wenn Sie den Browser über den Proxyserver bedienen. Es wird angenommen, dass proxyEnabled == true ist.

  private int proxyPort = Integer.parseInt(System.getProperty("selenide.proxyPort", "0"));

Nachwort

Haben Sie eine Option gefunden, die zum Testen nützlich sein könnte? Es scheint, dass von Zeit zu Zeit Optionen hinzugefügt werden, wenn die Bibliothek aktualisiert wird. Daher wird eine kontinuierliche Überprüfung empfohlen.

Recommended Posts

Selenid-Optionsliste
Selenide Know-how
Thread-sichere Liste
Listenmethode
Arbeitsliste
Linkliste