selenium
Första projektet i selen med Java
Sök…
Introduktion
Detta är en introduktion till Selenium med Java. Även om vi inte förväntar dig att du vet något om Selenium, måste du ha tidigare kunskap om Java för att följa denna kurs.
Nedladdningslänkar:
Ställa in IntelliJ Idea för Selenium
förutsättningar:
- Java är installerat
- Selen extraheras i en mapp (Innehåller 2 filer och 1 mapp)
Följ dessa steg för att ställa in IntelliJ Idea för Selenium.
- Klicka på "Nytt projekt" .
- Välj Java <"Hello World" -applikation
- Skriv in namnet på projektet och skapa det.
Gå nu till
File < Project Structure < Modules < Dependencies
Klicka där på den gröna plussymbolen ( +
) och välj Bibliotek. Navigera sedan till den extraherade Selenium-mappen och lägg till " selen-java 2.4.0.jar ". När du har lagt till detta klickar du på den gröna plus ( +
) -ikonen igen och väljer nu "Katalog". Den här gången letar du upp biblioteket i Selenium och klickar på ok medan du väljer den.
I slutet ska din projektstruktur se ut så här
Klicka nu på OK så är du redo.
Ställa in ChromeDriver
Förutsättningar: ChromeDriver laddas ner
Kopiera följande kod till din klass.
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "path of the exe file\\chromedriver.exe");
}
Om du använder Linux, ge sökvägen till ChromeDriver Binary.
Öppna en webbplats med Selenium
Vi använder get
metoden för att gå till en webbplats. Till exempel skulle detta öppna 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()
stänger webbläsaren. För att skapa en fördröjning använder vi Thread.sleep(3000)
.
Få element i selen
Varje Html-element i Selenium kallas en WebElement
. Till exempel skulle en p
tagg vara en WebElement
, en a
tagg vara en WebElement
, etc. Tänk på följande html-struktur:
<a id="link1" href="https://www.google.com">google</a>
<p class="p1">
This is a paragraph
</p>
Nu, om vi ville få a
tagg, kan vi göra
WebElement link = driver.findElement(By.id("link1"));
Nu kan vi klicka på det här, av
link.click();
Låt oss ta ett annat exempel. Om vi ville ha texten på p
taggen, dvs. " Detta är ett stycke ", kan vi göra det
WebElement p = driver.findElement(By.className("p1"));
System.out.println(p.getText());
Vi kan också få element efter taggar, som
WebElement tag = driver.findElement(By.tagName("a"));
Arbetsexempel i selen
Nu när vi känner till grunderna i Selenium kan vi skapa vårt eget projekt. I det här exemplet kommer vi att skapa ett program som hittar de senaste frågorna om stack-overflow.
Vi börjar enkelt, låter öppna 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();
}
Nu, om man tittar på källan till sida, du upptäcker att alla frågor, är a
taggar, med en classname av question-hyperlink
. Men eftersom det finns flera frågor använder vi en List
över WebElement
istället för WebElement
. Således kan vi göra
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"));
}
Nu måste vi få href
attributet för a
tagg, som har länken till frågan. För att göra detta kan vi använda getAttribute("href")
på varje WebElement
, som
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();
}
Detta skriver ut länkarna till toppfrågorna om Stack-overflow.
Få attribut för WebElements i Selenium
För att få attributet för ett WebElement
använder vi getAttribute
på det WebElement
. Tänk till exempel på följande html-tagg
<a id="click" href="https://www.google.com">
Vi kan hitta Elementets href
attribut av
WebElement e = driver.findElement(By.id("click"));
System.out.println(e.getAttribute("href")); //prints https://www.google.com