Erfassen und speichern Sie die Selen-Installation in Java

Inhaltsverzeichnis

[Was ist Selen](Was ist #seleniumt) Ziel Vorbereitung [Installationsverfahren](# Installationsverfahren) Testfall [Testfall ausführen](# Testfall ausführen)

Was ist Selen?

Selen ist ein Tool zur Browserautomatisierung. Sie können den Betrieb der Website testen, indem Sie den Browser automatisch bedienen.

Ziel

Einführung von Java-Selen, geöffnetes Chrome → Übergang zu Yahoo News → erfasst.

Vorbereitung

Erstellen eines Java-Projekts

Projektname "Selen"

Selen [DL] Link-1

Java selenium version3.141.59

Google Chrome [DL] Link-2

Neueste Ausgabe

Chromedriver [DL] Link-3

Gleiche Version wie Google Chrome

JUnit [DL] Link-4

Laden Sie die neueste Version von junit.jar und hamcrest-core.jar von Download herunter und installieren Sie sie.

Installationsverfahren

1. Erstellen Sie einen lib-Ordner und einen exe-Ordner direkt unter dem Selenium-Projekt

image.png

2. Kopieren Sie alle .jar-Dateien im libs-Ordner im heruntergeladenen selenium-java-3.141.59.zip und im client-Combined-3.141.59.jar in den erstellten lib-Ordner.

3. Fügen Sie die in den lib-Ordner kopierte JAR-Datei zum Klassenpfad hinzu

Fügen Sie den Java-Erstellungspfad aus den Eigenschaften des Selen-Projekts hinzu. コメント 2020-06-18 102953.png コメント 2020-06-18 103442.png

4. Kopieren Sie die heruntergeladene Chromedriver.exe in den erstellten exe-Ordner.

Sie sind jetzt bereit.

Testfall

Ich werde es tatsächlich bewegen. Wenn Sie sich auf diesen Bereich beziehen, können Sie ihn verschieben. https://qiita.com/VA_nakatsu/items/0095755dc48ad7e86e2f https://qiita.com/mochio/items/dc9935ee607895420186

Projektstruktur

コメント 2020-06-18 140323.png

・ChromeTest.java

Hauptverarbeitungsteil. Es erbt TestSetting.java. Javascript kann mit Selen verwendet werden.

package test.selenium;

import java.io.IOException;

import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriverException;

import util.TestUtils;

public class ChromeTest extends TestSetting {

	/**
	 *Testausführungsprozess
	 *
	 * @throws WebDriverException
	 * @throws IOException
	 */
	@Test
	public void testChrome() throws WebDriverException, IOException{
		//Erstellen Sie einen Capture-Speicherordner
		String path = TestUtils.mkdir(this.capturePath, "Ordner speichern");

		//Übergang zur YAHOO-Nachrichtenseite
		this.driver.get("https://news.yahoo.co.jp/");

		//Übergang zum Bildschirm der IT-Nachrichtenliste
		this.driver.findElement(By.cssSelector("#snavi > ul.yjnHeader_sub_cat > li:nth-child(7)")).click();

		//Erfassen Sie den Bildschirm
		TestUtils.screenShot(this.driver, path, "Sukusho");

		//Bewegen Sie den Bildschirm nach unten
		JavascriptExecutor js = (JavascriptExecutor) this.driver;
		js.executeScript("window.scrollBy(0,3000)");

		//Erfassen Sie den Bildschirm
		TestUtils.screenShot(this.driver, path, "Nach dem Verschieben des Bildschirms");
	}
}

・TestSetting.java

Es funktioniert zu Beginn des Testlaufs, erstellt einen Capture-Speicherordner und öffnet Chrome.

package test.selenium;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

import org.junit.Before;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;

import util.TestUtils;



public class TestSetting {

	//Speicherort der zu erfassenden Datei
	protected String capturePath;

	protected WebDriver driver;

	//Betrieb vor Testausführung
	@Before
	public void initSet() throws IOException{
		//Rufen Sie den Desktop-Pfad des ausführenden Benutzers ab
		String desktopPath = System.getProperty("user.home") + "\\Desktop";

		//Erstellen Sie einen Capture-Speicherordner auf Ihrem Desktop
		this.capturePath = TestUtils.mkdir(desktopPath, "Speicherordner erfassen");

		//Übergeben Sie den Chrome-Treiberpfad
		System.setProperty("webdriver.chrome.driver", "./exe/chromedriver.exe");

		//Ändern Sie das Download-Ziel in den angegebenen Ordner
		Map<String, Object> dir = new HashMap<String, Object>();
		dir.put("download.default_directory", this.capturePath);

		ChromeOptions option = new ChromeOptions();
		option.setExperimentalOption("dir", dir);

		//Starten Sie Chrome
		this.driver = new ChromeDriver();

		//Fenster maximieren
		this.driver.manage().window().maximize();
	}

	//Betrieb nach Testausführung
	@After
	public void yeild() throws IOException{
		//Chrom schließen
		this.driver.quit();
	}
}

・TestUtils.java

Screenshot-Verarbeitung und Verarbeitung zur Erstellung von Erfassungsordnern

package util;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;
import java.util.concurrent.TimeUnit;

import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.Augmenter;

public class TestUtils {

	/**
	 *Screenshot des Anzeigeteils
	 *
	 * @param driver
	 * @param path
	 * @param filename
	 * @throws IOException
	 */
	public static void screenShot(WebDriver driver, String path, String filename) throws IOException{

		driver.manage().timeouts().implicitlyWait(30,  TimeUnit.SECONDS);
		driver.switchTo().defaultContent();
		TakesScreenshot ts = (TakesScreenshot) new Augmenter().augment(driver);
		Path from = Paths.get(ts.getScreenshotAs(OutputType.FILE).toURI());
		Path to = Paths.get(path + "\\" + filename + ".png ");
		Files.move(from, to, StandardCopyOption.REPLACE_EXISTING);
	}

	/**
	 *Erstellen Sie einen Ordner für die Erfassung am angegebenen Speicherort
	 *
	 * @param dirpath
	 * @param dirname
	 * @return
	 * @throws IOException
	 */
	public static String mkdir(String dirpath, String dirname) throws IOException{
		String path = Paths.get(dirpath, dirname).toString();

		if(Files.notExists(Paths.get(dirpath,  dirname))) {
			Files.createDirectories(Paths.get(dirpath, dirname));
		}
		return path;
	}
}

Testfall ausführen

Wenn Sie ChromeTest.java unter "Ausführen" -> "JUnit-Test" ausführen, wird Chrome gestartet und ein Erfassungsspeicherordner wird auf dem Desktop erstellt und der erfasste Ordner wird gespeichert. コメント 2020-06-18 150109.png

Recommended Posts

Erfassen und speichern Sie die Selen-Installation in Java
Generieren Sie OffsetDateTime aus Clock und LocalDateTime in Java
Subtrahieren Sie Enum-Konstanten von Zeichenfolgen und Werten in Java zurück
JSON in Java und Jackson Teil 1 Gibt JSON vom Server zurück
Implementieren Sie die Java-Schnittstelle in der JRuby-Klasse und rufen Sie sie von Java aus auf
Korrigieren Sie den Zeichencode in Java und lesen Sie von der URL
Ruft Attribute und Werte aus einer XML-Datei in Java ab
Beispiel für Codierung und Decodierung in Java
[Für Anfänger] Führen Sie Selenium auf Java aus
StringBuffer- und StringBuilder-Klasse in Java
Verwenden Sie Chrome Headless von Selenium / Java
Verstehe gleich und hashCode in Java
Hallo Welt in Java und Gradle
Lernen Sie Deep Learning von Grund auf in Java.
JSON in Java und Jackson Teil ③ Betten Sie JSON in HTML ein und verwenden Sie es aus JavaScript
Unterschied zwischen final und Immutable in Java
Rufen Sie Java-Methoden aus JavaScript auf, das in Java ausgeführt wird
Schlüssel vom Wert in Java Map umkehren
Gradle generiert automatisch eine Versionsnummer aus git und verwendet diese in Java
Lesen Sie die xlsx-Datei in Java mit Selenium
Unterschied zwischen getText () und getAttribute () von Selen
Abrufen des Verlaufs vom Zabbix-Server in Java
Unterschied zwischen Arrylist und verknüpfter Liste in Java
Programmieren Sie PDF-Kopf- und Fußzeilen in Java
Lernen Sie Flyweight-Muster und ConcurrentHashMap in Java
Die Richtung von Java in "C ++ Design and Evolution"
Von Java nach C und von C nach Java in Android Studio
Lesen und Schreiben von GZIP-Dateien in Java
Unterschied zwischen int und Integer in Java
Java-Installation
Diskriminierung von Enum in Java 7 und höher
Java: Laden Sie die Datei herunter und speichern Sie sie an dem im Dialogfeld [Use HttpClient] ausgewählten Speicherort.
[Deep Learning von Grund auf neu] in Java 1. Zur Zeit Differenzierung und teilweise Differenzierung
GetInstance () aus einer @ Singleton-Klasse in Groovy aus Java
In Bezug auf transiente Modifikatoren und Serialisierung in Java
Erkennen Sie ähnliche Videos in Java und OpenCV Version 2
Unterschied zwischen next () und nextLine () in Java Scanner
So erhalten Sie eine Klasse von Element in Java
Textextraktion in Java aus PDF mit pdfbox-2.0.8
Holen Sie sich Unixtime (Sekunden) von ZonedDateTime in Scala / Java
Erkennen Sie ähnliche Videos in Java und OpenCV Version 3
Hinzufügen, Lesen und Löschen von Excel-Kommentaren mit Java
Überprüfen Sie das statische und öffentliche Verhalten in Java-Methoden
[Java] Verstehe in 10 Minuten! Assoziatives Array und HashMap
[Deep Learning von Grund auf neu] in Java 3. Neuronales Netzwerk
Codierungskonventionen in Eclipse automatisch ändern und speichern
Unterscheiden Sie in Java zwischen positiven und negativen Zahlen
Java fügt Wasserzeichen in Word-Dokumenten hinzu und entfernt sie
Erkennen Sie ähnliche Videos in Java und OpenCV Version 1
Repräsentiert "nächster Tag" und "vorheriger Tag" in Java / Android
Fragen in Java-Ausnahmebehandlung werfen und versuchen-fangen
Laden Sie Notizen in Java auf S3 hoch und laden Sie sie herunter
Verschlüsseln / Entschlüsseln mit AES256 in PHP und Java
[Java] KFunction von Method / Constructor in Java abrufen [Kotlin]
Verwenden Sie Shift Right und Shift Left in Selen richtig
[Android-Entwicklung] Holen Sie sich mit Java Bilder vom Server und legen Sie sie in ImageView fest! !!
Java Installation jdk