[JAVA] Run Edge (version Chromium) sur Mac avec Selenium

introduction

2020/06 La version Chromium d'Edge est enfin disponible avec une mise à jour Windows. Récemment, dans les tests automatisés E2E, les demandes d'inclusion d'IE ont diminué. Et bientôt même le 1er ** "Je veux faire un test automatique (E2E)" → "Avec Internet Explorer" ** J'espère que cette tendance disparaîtra du monde. Au lieu de cela, ** Edge ** a augmenté.

Exécutons la version Chromium d'Edge sur Mac OS

Environnement de développement

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

Environnement local

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
    }

}

C'est une source que je vois souvent, mais ça marche sans penser à rien. C'est une victoire facile. Bien sûr, cela fonctionne sous 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( "Groupe Human Crest"));
        assertThat(browserName,is("msedge"));
    }
}

Commentaire

En parlant de la source, il n'est pas nécessaire de la réécrire simplement parce que c'est la version Chromium. Les sources que j'ai écrites pour Edge fonctionneront, et Edge installé sur MacOS fonctionnera également.

Veuillez noter ci-dessous. ..

Note 1

Lors de la spécification de Edge avec RemoteWebDriver

DesiredCapabilities capabilities = DesiredCapabilities.edge();

Si vous écrivez, ce sera pour Windows. Dans le journal de la configuration de Selenium Grid / hub sur MacOS,

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

Je lance une erreur Apparemment, il est défini sur platform: WINDOWS sans condition. Ainsi, lors des tests avec Edge du côté Mac,

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

Ajoutons.

Note 2

driver.getCapabilities().getBrowserName();

La valeur de retour de est msedge.

DesiredCapabilities.edge().getBrowserName()

La valeur de retour de est «Microsoft Edge».

Oui, Non! </ Font> En as-tu besoin? ?? C'est peut-être une information, mais ... En jugeant la partie où un traitement spécial est inséré pour chaque navigateur jusqu'à présent


if (Nom du navigateur) then

Avez-vous écrit quelque chose comme ça? ?? Dans mon cas, il n'y a pas un petit héritage du passé, et c'est la raison pour laquelle cela n'a tout simplement pas fonctionné.

Supplément

Evidemment, lors du lancement d'un nœud Selenium Grid, il est nécessaire de spécifier le pilote Web. En d'autres termes, comme ça

forMacOS


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

Dans mon cas, je le mets de côté et mets le webdriver de chaque navigateur dans le même dossier que selenium-server-standalone-xxx.jar. Ensuite, Node a joué un rôle sans aucun problème même si je n'ai pas spécifié le webdriver. Cependant, pour la version Chromium Edge, il est obligatoire de spécifier le pilote Web. (Probablement, cela fonctionne comme une référence à MicrosoftWebDriver.exe par défaut. Il démarre simplement le navigateur et s'arrête sans entrer l'URL)

finalement

Vous devriez maintenant pouvoir tester Edge installé sur votre Mac OS. (Je n'ai pas écrit grand-chose, mais ww)

Quant à Windows, Microsoft Edge Legacy n'est pas à la hauteur d'IE, mais il est toujours un peu original et ne peut pas fonctionner à 100% sur la même source. Cependant, la version Chromium fonctionne presque sur la même source que Chrome.

Pour les ingénieurs d'automatisation des tests E2E, c'est formidable d'avoir un environnement dans lequel Chrome, Firefox et Edge peuvent fonctionner sur n'importe quel système d'exploitation.

Recommended Posts

Run Edge (version Chromium) sur Mac avec Selenium
Exécutez Ubuntu + ROS avec Docker sur Mac
Exécutez STS4 sur Mac
Étapes pour exécuter Docker sur Mac
Comment changer de version Java avec direnv dans le terminal sur Mac
Étapes pour exécuter le développement local d'ASP.NET Core sur Mac avec docker-compose
Gestion des versions de java avec jenv d'OSX
Créez un environnement ARM-cpu avec qemu sur mac et exécutez java [Résultat → Échec]
Automatisez les téléchargements de fichiers IE11 / Edge avec Selenium WebDriver
Exécutez JSP Hello World avec Tomcat sur Docker
Comment exécuter NullpoMino 7.5.0 sur la version 64 bits d'Ubuntu 20.04.1
Comment exécuter javafx avec Raspeye publié le 12/07/2020
Exécutez des tests Ruby on Rails RSpec avec des actions GitHub
[Version de préservation 2018] Application Android d'ingénierie inverse (.apk) sur Mac
Jusqu'à la construction de Spring-Boot avec Eclipse sur Mac (version Gradle)
Exécutez kuromoji dans l'environnement Win10 + Eclipse + Java (version janvier 2020)
Exécutons l'exemple de programme OpenVINO sur l'ordinateur de bord OKI AI "AE2100" version du conteneur Ubuntu (1)
Exécutons l'exemple de programme OpenVINO sur l'ordinateur de bord OKI AI "AE2100" version du conteneur Ubuntu (3)
Exécutons l'exemple de programme OpenVINO sur l'ordinateur de bord OKI AI "AE2100" version du conteneur Ubuntu (2)