Capture et sauvegarde de l'installation de sélénium en Java

table des matières

[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)

Qu'est-ce que le sélénium

Selenium est un outil d'automatisation de navigateur. Vous pouvez tester le fonctionnement du site Web en utilisant le navigateur automatiquement.

Cible

Introduction du sélénium Java, ouverture de Chrome → transition vers Yahoo News → capturée.

Préparation

Créer un projet Java

Nom du projet "sélénium"

sélénium [DL] link-1

Java selenium version3.141.59

Google Chrome [DL] link-2

Dernière édition

Chromedriver [DL] link-3

Même version que Google Chrome

JUnit [DL] [lien-4]

Téléchargez la dernière version de junit.jar et hamcrest-core.jar depuis Télécharger et installer.

Procédure d'installation

1. Créez un dossier lib et un dossier exe directement sous le projet selenium

image.png

2. Copiez tous les fichiers .jar dans le dossier libs dans le dossier téléchargé selenium-java-3.141.59.zip et client-combiné-3.141.59.jar dans le dossier lib créé.

3. Ajoutez le fichier jar copié dans le dossier lib au chemin de classe

Ajoutez le chemin de construction Java à partir des propriétés du projet sélénium. コメント 2020-06-18 102953.png コメント 2020-06-18 103442.png

4. Copiez le Chromedriver.exe téléchargé dans le dossier exe créé.

Vous êtes maintenant prêt.

cas de test

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

Structure du projet

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

・ChromeTest.java

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

・TestSetting.java

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();
	}
}

・TestUtils.java

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;
	}
}

Exécuter le cas de test

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é. コメント 2020-06-18 150109.png

Recommended Posts

Capture et sauvegarde de l'installation de sélénium en Java
Générer OffsetDateTime à partir de Clock et LocalDateTime en Java
Soustraire les constantes Enum des chaînes et des valeurs en Java
JSON en Java et Jackson Partie 1 Renvoyer JSON à partir du serveur
Implémentez l'interface Java dans la classe JRuby et appelez-la depuis Java
Corrigez le code de caractère en Java et lisez à partir de l'URL
Obtenir des attributs et des valeurs à partir d'un fichier XML en Java
Exemple d'encodage et de décodage en Java
[Pour les débutants] Exécutez Selenium sur Java
Classe StringBuffer et StringBuilder en Java
Utiliser Chrome Headless de Selenium / Java
Comprendre equals et hashCode en Java
Bonjour tout le monde en Java et Gradle
Étudiez le Deep Learning à partir de zéro en Java.
JSON en Java et Jackson Part ③ Incorporer JSON dans HTML et l'utiliser à partir de JavaScript
Différence entre final et immuable en Java
Appel de méthodes Java à partir de JavaScript exécutées en Java
Inverser la clé de la valeur dans la carte Java
Gradle génère automatiquement le numéro de version de git et l'utilise en Java
Lire le fichier xlsx en Java avec Selenium
Différence entre getText () et getAttribute () de Selenium
Obtenir l'historique du serveur Zabbix en Java
Différence entre les listes d'arry et les listes liées en Java
Programmer les en-têtes et pieds de page PDF en Java
Apprenez les modèles Flyweight et ConcurrentHashMap en Java
La direction de Java dans "C ++ Design and Evolution"
De Java à C et de C à Java dans Android Studio
Lire et écrire des fichiers gzip en Java
Différence entre int et Integer en Java
installation java
Discrimination d'énum dans Java 7 et supérieur
Java: Téléchargez le fichier et enregistrez-le à l'emplacement sélectionné dans la boîte de dialogue [Utiliser HttpClient]
[Deep Learning from scratch] en Java 1. Pour le moment, différenciation et différenciation partielle
GetInstance () à partir d'une classe @Singleton dans Groovy à partir de Java
Concernant les modificateurs transitoires et la sérialisation en Java
Détecter des vidéos similaires dans Java et OpenCV rev.2
Différence entre next () et nextLine () dans Java Scanner
Comment obtenir une classe depuis Element en Java
Extraction de texte en Java à partir de PDF avec pdfbox-2.0.8
Obtenez unixtime (secondes) de ZonedDateTime dans Scala / Java
Détecter des vidéos similaires dans Java et OpenCV rev.3
Ajouter, lire et supprimer des commentaires Excel à l'aide de Java
Vérifier le comportement statique et public dans les méthodes Java
[Java] Comprenez en 10 minutes! Tableau associatif et HashMap
[Deep Learning from scratch] dans Java 3. Réseau neuronal
Modifier et enregistrer automatiquement les conventions de codage dans Eclipse
Distinguer les nombres positifs et négatifs en Java
Java ajoute et supprime les filigranes dans les documents Word
Détecter des vidéos similaires dans Java et OpenCV rev.1
Représente le «jour suivant» et le «jour précédent» en Java / Android
Questions sur la gestion des exceptions Java throw et try-catch
Télécharger et télécharger des notes en java sur S3
Crypter / décrypter avec AES256 en PHP et Java
[Java] Obtenir KFunction à partir de la méthode / du constructeur en Java [Kotlin]
Utilisez correctement Shift Right et Shift Left dans Selenium
[Développement Android] Obtenez des images du serveur avec Java et définissez-les dans ImageView! !!
Jdk d'installation Java