[Qu'est-ce que le sélénium](Qu'est-ce que le #seleniumt) Objectif Préparation [Procédure d'installation](# Procédure d'installation) [Cas de test](#Cas de test) [Exécuter le scénario de test](#Run Test Case)
Selenium est un outil d'automatisation de navigateur. Vous pouvez tester le fonctionnement du site Web en utilisant le navigateur automatiquement.
Introduction du sélénium Java, ouverture de Chrome → transition vers Yahoo News → capturée.
Nom du projet "sélénium"
Java selenium version3.141.59
Dernière édition
Même version que Google Chrome
Téléchargez la dernière version de junit.jar et hamcrest-core.jar depuis Télécharger et installer.
Ajoutez le chemin de construction Java à partir des propriétés du projet sélénium.
Vous êtes maintenant prêt.
Je vais en fait le déplacer. Si vous vous référez à cette zone, vous pouvez la déplacer. https://qiita.com/VA_nakatsu/items/0095755dc48ad7e86e2f https://qiita.com/mochio/items/dc9935ee607895420186
Partie de traitement principale. Il hérite de TestSetting.java. Javascript peut être utilisé avec le sélénium.
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 {
/**
*Processus d'exécution des tests
*
* @throws WebDriverException
* @throws IOException
*/
@Test
public void testChrome() throws WebDriverException, IOException{
//Créer un dossier d'enregistrement de capture
String path = TestUtils.mkdir(this.capturePath, "Enregistrer le dossier");
//Transition vers la page d'actualités YAHOO
this.driver.get("https://news.yahoo.co.jp/");
//Transition vers l'écran de la liste des actualités informatiques
this.driver.findElement(By.cssSelector("#snavi > ul.yjnHeader_sub_cat > li:nth-child(7)")).click();
//Capturez l'écran
TestUtils.screenShot(this.driver, path, "Sukusho");
//Descendre l'écran
JavascriptExecutor js = (JavascriptExecutor) this.driver;
js.executeScript("window.scrollBy(0,3000)");
//Capturez l'écran
TestUtils.screenShot(this.driver, path, "Après avoir déplacé l'écran");
}
}
Il fonctionne au début du test, crée un dossier de sauvegarde de capture et ouvre 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 {
//Emplacement du fichier pour la capture
protected String capturePath;
protected WebDriver driver;
//Opération avant l'exécution du test
@Before
public void initSet() throws IOException{
//Obtenez le chemin du bureau de l'utilisateur en cours d'exécution
String desktopPath = System.getProperty("user.home") + "\\Desktop";
//Créez un dossier d'enregistrement de capture sur votre bureau
this.capturePath = TestUtils.mkdir(desktopPath, "Capturer le dossier de sauvegarde");
//Passer le chemin du pilote Chrome
System.setProperty("webdriver.chrome.driver", "./exe/chromedriver.exe");
//Remplacez la destination de téléchargement par le dossier spécifié
Map<String, Object> dir = new HashMap<String, Object>();
dir.put("download.default_directory", this.capturePath);
ChromeOptions option = new ChromeOptions();
option.setExperimentalOption("dir", dir);
//Lancer chrome
this.driver = new ChromeDriver();
//Agrandir la fenêtre
this.driver.manage().window().maximize();
}
//Fonctionnement après l'exécution du test
@After
public void yeild() throws IOException{
//Fermer chrome
this.driver.quit();
}
}
Traitement de capture d'écran et traitement de création de dossier de capture
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 {
/**
*Capture d'écran de la partie d'affichage
*
* @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);
}
/**
*Créer un dossier pour la capture à l'emplacement spécifié
*
* @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;
}
}
Lorsque vous exécutez ChromeTest.java à partir de "Exécuter" -> "JUnit Test", Chrome démarre et un dossier d'enregistrement de capture est créé sur le bureau et celui capturé est enregistré.