[Was ist Selen](Was ist #seleniumt) Ziel Vorbereitung [Installationsverfahren](# Installationsverfahren) Testfall [Testfall ausführen](# Testfall ausführen)
Selen ist ein Tool zur Browserautomatisierung. Sie können den Betrieb der Website testen, indem Sie den Browser automatisch bedienen.
Einführung von Java-Selen, geöffnetes Chrome → Übergang zu Yahoo News → erfasst.
Projektname "Selen"
Java selenium version3.141.59
Neueste Ausgabe
Gleiche Version wie Google Chrome
Laden Sie die neueste Version von junit.jar und hamcrest-core.jar von Download herunter und installieren Sie sie.
Fügen Sie den Java-Erstellungspfad aus den Eigenschaften des Selen-Projekts hinzu.
Sie sind jetzt bereit.
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
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");
}
}
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();
}
}
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;
}
}
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.
Recommended Posts