selenium
Primo progetto in selenio con Java
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:
Impostazione Idea IntelliJ per il selenio
Prerequisiti:
- Java è installato
- Il selenio viene estratto in una cartella (contiene 2 file e 1 cartella)
Segui questi passaggi per configurare IntelliJ Idea per il selenio.
- Clicca su "Nuovo progetto" .
- Scegli l'applicazione Java <"Hello World"
- Digita il nome del progetto e crealo.
Il tuo schermo dovrebbe assomigliare a questo
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
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