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
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
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'
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"));
}
}
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. ..
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.
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.
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.)
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.