Ricerca…


introduzione

Questa è un'introduzione a Selenium, utilizzando Java. Mentre non ci aspettiamo che tu sappia nulla riguardo al selenio, devi avere una conoscenza preliminare di Java per seguire questo corso.

Link per il download:

Selenio

IntelliJ IDEA

ChromeDriver

JDK 8

Impostazione Idea IntelliJ per il selenio

Prerequisiti:

  1. Java è installato
  2. Il selenio viene estratto in una cartella (contiene 2 file e 1 cartella)

Segui questi passaggi per configurare IntelliJ Idea per il selenio.

  1. Clicca su "Nuovo progetto" .
  2. Scegli l'applicazione Java <"Hello World"
  3. Digita il nome del progetto e crealo.

Il tuo schermo dovrebbe assomigliare a questo inserisci la descrizione dell'immagine qui

Ora vai

File < Project Structure < Modules < Dependencies

Qui, fai clic sull'icona più verde ( + ) e scegli Libreria. Quindi accedere alla cartella Selenium estratta e aggiungere " selenium-java 2.4.0.jar ". Dopo averlo aggiunto, fai nuovamente clic sull'icona verde più ( + ), quindi scegli "Directory". Questa volta, individua la cartella libs di Selenium e fai clic su ok, mentre lo selezioni.

Alla fine, la tua struttura del progetto dovrebbe assomigliare a questo inserisci la descrizione dell'immagine qui

Ora, fai clic su OK, e tutto è pronto.

Configurazione di ChromeDriver

Prerequisiti: ChromeDriver è stato scaricato

Copia il seguente codice nella tua classe.

public static void main(String[] args) {
    System.setProperty("webdriver.chrome.driver", "path of the exe file\\chromedriver.exe");
}

Se stai usando Linux, dai il percorso al binario ChromeDriver.

Aprendo un sito web usando il selenio

Usiamo il metodo get per andare su un sito web. Ad esempio, questo aprirà Google

public static void main(String[] args) throws InterruptedException {
    System.setProperty("webdriver.chrome.driver", "path of the exe file\\chromedriver.exe");
    WebDriver driver = new ChromeDriver();
    driver.get("https:www.google.com");
    Thread.sleep(3000); //wait for 3 seconds
    driver.quit();      //close Chrome
}

driver.quit() chiude il browser. Per creare un ritardo, utilizziamo Thread.sleep(3000) .

Ottenere elementi nel selenio

Ogni elemento HTML in selenio è chiamato WebElement . Ad esempio, un p tag sarebbe un WebElement , un a tag sarebbe un WebElement , ecc Si consideri la seguente struttura html:

<a id="link1" href="https://www.google.com">google</a>
<p class="p1">
This is a paragraph
</p>

Ora, se volessimo ottenere a tag, potremmo farlo

WebElement link = driver.findElement(By.id("link1"));

Ora, possiamo cliccare su questo, vicino

link.click();

Facciamo un altro esempio. Se volessimo il testo del tag p , cioè " Questo è un paragrafo ", possiamo farlo

WebElement p = driver.findElement(By.className("p1"));
System.out.println(p.getText());

Possiamo anche ottenere elementi per tag, come

WebElement tag = driver.findElement(By.tagName("a"));

Esempio di lavoro in selenio

Ora che conosciamo le basi del Selenio, possiamo creare il nostro progetto. Per questo esempio, creeremo un programma, che trova le domande più recenti sullo stack overflow.

Iniziamo facilmente, apriamo lo stack overflow.

public static void main(String[] args) throws InterruptedException {
    System.setProperty("webdriver.chrome.driver", "path of the exe file\\chromedriver.exe");
    WebDriver driver = new ChromeDriver();
    driver.get("https:stackoverflow.com");
    Thread.sleep(3000);
    driver.quit();
}

Ora, se guardi l'origine della pagina, trovi che tutte le domande, sono a tag, con un nome-classe di question-hyperlink . Tuttavia, poiché esistono più domande, utilizziamo un List di WebElement , anziché WebElement . Quindi, possiamo fare

public static void main(String[] args) throws InterruptedException {
    System.setProperty("webdriver.chrome.driver", "path to chromedriver\\chromedriver.exe");
    WebDriver driver = new ChromeDriver();
    driver.get("https:stackoverflow.com");
    List<WebElement> list = driver.findElements(By.className("question-hyperlink"));
}

Ora, abbiamo bisogno di ottenere l'attributo href di a tag, che ha il link della domanda. Per fare ciò, possiamo usare getAttribute("href") su ogni WebElement , come

public static void main(String[] args) throws InterruptedException {
    System.setProperty("webdriver.chrome.driver", "path to chromedriver\\chromedriver.exe");
    WebDriver driver = new ChromeDriver();
    driver.get("https:stackoverflow.com");
    List<WebElement> list = driver.findElements(By.className("question-hyperlink"));
    System.out.println(list.size());
    list.forEach(e->System.out.println(e.getAttribute("href")));
    driver.quit();
}

Questo stampa i collegamenti delle domande principali su Stack-overflow.

Ottenere attributi di WebElement in selenio

Per ottenere l'attributo di un WebElement , usiamo getAttribute su quel WebElement . Ad esempio, considera il seguente tag html

<a id="click" href="https://www.google.com">

Possiamo trovare l'attributo href di Element di

WebElement e = driver.findElement(By.id("click"));
System.out.println(e.getAttribute("href")); //prints https://www.google.com


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow