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:

Selen

IntelliJ IDEA

ChromeDriver

JDK 8

Ställa in IntelliJ Idea för Selenium

förutsättningar:

  1. Java är installerat
  2. 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.

  1. Klicka på "Nytt projekt" .
  2. Välj Java <"Hello World" -applikation
  3. Skriv in namnet på projektet och skapa det.

Din skärm ska se ut så här ange bildbeskrivning här

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 ange bildbeskrivning 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


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow