[JAVA] Führen Sie Edge (Chromium-Version) auf einem Mac mit Selen aus

Einführung

2020/06 Die Chromium-Version von Edge ist endlich mit einem Windows-Update verfügbar. In jüngster Zeit sind bei automatisierten E2E-Tests die Anforderungen an die Aufnahme von IE zurückgegangen. Und bald sogar der 1 .. ** "Ich möchte einen automatischen Test (E2E) durchführen" → "Mit Internet Explorer" ** Ich hoffe, dass dieser Trend von der Welt verschwindet. Stattdessen hat ** Edge ** zugenommen.

Lassen Sie uns die Chromium-Version von Edge unter Mac OS ausführen

Entwicklungsumgebung

OS

% sw_vers
ProductName:	Mac OS X
ProductVersion:	10.15.5
BuildVersion:	19F101

java

% java -version
openjdk version "11.0.7" 2020-04-14 LTS
OpenJDK Runtime Environment Corretto-11.0.7.10.1 (build 11.0.7+10-LTS)
OpenJDK 64-Bit Server VM Corretto-11.0.7.10.1 (build 11.0.7+10-LTS, mixed mode)

Edge スクリーンショット 2020-07-08 2.53.58.png

build.gradle

// https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java
compile group: 'org.seleniumhq.selenium', name: 'selenium-java', version: '3.141.59'
// https://mvnrepository.com/artifact/io.github.bonigarcia/webdrivermanager
compile group: 'io.github.bonigarcia', name: 'webdrivermanager', version: '4.0.0'

Code

Unmittelbare Umwelt

public class SeleniumTestEnv {

    private WebDriver driver;

    @BeforeClass
    public static void beforeClass() throws Exception {
        WebDriverManager.edgedriver().setup();
    }

    @Before
    public void setUp() throws Exception {
        driver = new EdgeDriver();
    }

    @After
    public void teardown() {
        if (driver != null) {
            driver.quit();
        }
    }

    @Test
    public void test001() {
        driver.get("https://www.humancrest.co.jp");
        //Test Code
    }

}

Es ist eine Quelle, die ich oft sehe, aber sie funktioniert, ohne an irgendetwas zu denken. Es ist ein einfacher Sieg. Natürlich funktioniert es unter Windows

Selenium Grid

public class SeleniumTestEnvRemote {

    private RemoteWebDriver driver;

    @Before
    public void setUp() throws Exception {
//        Capabilities capabilities = DesiredCapabilities.edge();
        MutableCapabilities option = new EdgeOptions();
        driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), option);
    }

    @After
    public void teardown() {
        if (driver != null) {
            driver.quit();
        }
    }

    @Test
    public void test001() {
        driver.get("https://www.humancrest.co.jp");
        String title = driver.getTitle();
        String browserName = driver.getCapabilities().getBrowserName();
        assertThat(title,is( "Human Crest Group"));
        assertThat(browserName,is("msedge"));
    }
}

Kommentar

Wenn Sie über die Quelle sprechen, müssen Sie sie nicht neu schreiben, nur weil es sich um die Chromium-Version handelt. Die Quellen, die ich für Edge geschrieben habe, funktionieren, und Edge, das unter MacOS installiert ist, funktioniert auch.

Bitte beachten Sie unten. ..

Anmerkung 1

Bei der Angabe von Edge mit RemoteWebDriver

DesiredCapabilities capabilities = DesiredCapabilities.edge();

Wenn Sie schreiben, wird es für Windows sein. In dem unter MacOS eingerichteten Protokoll von "Selenium Grid / Hub"

Error forwarding the new session cannot find : Capabilities {browserName: MicrosoftEdge, platform: WINDOWS, version: }

Ich werfe einen Fehler Anscheinend ist es bedingungslos auf "Plattform: FENSTER" eingestellt. Wenn Sie also mit Edge auf der Mac-Seite testen,

DesiredCapabilities capabilities = DesiredCapabilities.edge();
capabilities.setPlatform(Platform.MAC);

Fügen wir hinzu.

Anmerkung 2

driver.getCapabilities().getBrowserName();

Der Rückgabewert von ist "msedge".

DesiredCapabilities.edge().getBrowserName()

Der Rückgabewert von ist "Microsoft Edge".

Ja, Nein! </ Font> Brauchst du es? ?? Es können Informationen sein, aber ... Indem Sie den Teil beurteilen, in dem bisher für jeden Browser eine spezielle Verarbeitung eingefügt wurde


if (Browsername) then

Hast du so etwas geschrieben? ?? In meinem Fall gibt es kein kleines Vermächtnis der Vergangenheit, und dies war der Grund, warum es einfach nicht funktioniert hat.

Ergänzung

Beim Starten eines Selenium Grid-Knotens muss natürlich der Webtreiber angegeben werden. Mit anderen Worten, so

forMacOS


java -jar -Dwebdriver.edge.driver="msedgedriver" selenium-server-standalone-3.141.59.jar -role node -nodeConfig node_config.json

In meinem Fall lege ich es seitwärts und lege den Web-Treiber jedes Browsers in denselben Ordner wie selenium-server-standalone-xxx.jar. Dann spielte Node problemlos eine Rolle, auch wenn ich den Webdriver nicht angegeben habe. Für die Chromium-Version Edge muss jedoch der Webtreiber angegeben werden. (Wahrscheinlich funktioniert es so, als würde standardmäßig auf MicrosoftWebDriver.exe verwiesen. Es startet nur den Browser und stoppt ohne Eingabe der URL.)

Schließlich

Sie sollten nun in der Lage sein, Edge zu testen, das auf Ihrem Mac OS installiert ist. (Ich habe keine große Sache geschrieben, aber ww)

Wie für Windows, Microsoft Edge Legacy ist nicht dem IE gewachsen, aber es ist immer noch etwas eigenartig und kann nicht zu 100% auf derselben Quelle ausgeführt werden. Die Chromium-Version läuft jedoch auf fast derselben Quelle wie Chrome.

Für E2E-Testautomatisierungsingenieure ist es großartig, eine Umgebung zu haben, in der Chrome, Firefox und Edge auf jedem Betriebssystem ausgeführt werden können.

Recommended Posts

Führen Sie Edge (Chromium-Version) auf einem Mac mit Selen aus
Führen Sie Ubuntu + ROS mit Docker auf dem Mac aus
Führen Sie STS4 auf dem Mac aus
Schritte zum Ausführen von Docker auf einem Mac
So wechseln Sie die Java-Version mit direnv im Terminal auf dem Mac
Schritte zum Ausführen der lokalen Entwicklung von ASP.NET Core auf einem Mac mit Docker-Compose
Versionsverwaltung von Java mit jenv von OSX
Erstellen Sie eine ARM-CPU-Umgebung mit qemu auf dem Mac und führen Sie Java aus [Ergebnis → Fehler]
Automatisieren Sie das Herunterladen von IE11 / Edge-Dateien mit Selenium WebDriver
Führen Sie JSP Hello World mit Tomcat auf Docker aus
So führen Sie NullpoMino 7.5.0 unter Ubuntu 20.04.1 64-Bit-Version aus
Wie man javafx mit Raspeye ausführt veröffentlicht am 12.07.2020
Führen Sie Ruby on Rails RSpec-Tests mit GitHub-Aktionen aus
[2018 Preservation Version] Reverse Engineering Android App (.apk) auf Mac
Bis zum Erstellen von Spring-Boot mit Eclipse auf einem Mac (Gradle-Version)
Führen Sie kuromoji in der Win10 + Eclipse + Java-Umgebung aus (Version Januar 2020).
Lassen Sie uns das OpenVINO-Beispielprogramm auf dem OKI AI-Edge-Computer "AE2100" Ubuntu-Container-Version (1) ausführen.
Lassen Sie uns das OpenVINO-Beispielprogramm auf dem OKI AI-Edge-Computer "AE2100" Ubuntu-Container-Version (3) ausführen.
Lassen Sie uns das OpenVINO-Beispielprogramm auf dem OKI AI-Edge-Computer "AE2100" Ubuntu-Container-Version (2) ausführen.