Szukaj…


Wprowadzenie

To jest wprowadzenie do Selenium, z wykorzystaniem Java. Chociaż nie oczekujemy, że będziesz wiedział cokolwiek na temat Selenium, musisz mieć wcześniejszą znajomość języka Java, aby przejść ten kurs.

Pobierz linki :

Selen

IntelliJ IDEA

ChromeDriver

JDK 8

Konfigurowanie pomysłu IntelliJ dla Selenium

Wymagania wstępne:

  1. Java jest zainstalowana
  2. Selen jest wyodrębniany w folderze (zawiera 2 pliki i 1 folder)

Wykonaj następujące kroki, aby skonfigurować IntelliJ Idea for Selenium.

  1. Kliknij „Nowy projekt” .
  2. Wybierz aplikację Java <„Hello World”
  3. Wpisz nazwę projektu i utwórz go.

Twój ekran powinien wyglądać mniej więcej tak wprowadź opis zdjęcia tutaj

Teraz idź do

File < Project Structure < Modules < Dependencies

Tam kliknij zieloną ikonę plus ( + ) i wybierz Biblioteka. Następnie przejdź do wyodrębnionego folderu Selenium i dodaj „ selenium-java 2.4.0.jar ”. Po dodaniu kliknij ponownie zieloną ikonę plus ( + ), a teraz wybierz „Katalog”. Tym razem zlokalizuj folder libs Selenium i kliknij OK, wybierając go.

Na koniec struktura projektu powinna wyglądać tak wprowadź opis zdjęcia tutaj

Teraz kliknij OK i wszystko gotowe.

Konfigurowanie ChromeDriver

Wymagania wstępne: ChromeDriver jest pobierany

Skopiuj poniższy kod do swojej klasy.

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

Jeśli korzystasz z systemu Linux, podaj ścieżkę do pliku binarnego ChromeDriver.

Otwarcie strony internetowej za pomocą Selenium

Używamy metody get , aby przejść do strony internetowej. Na przykład spowoduje to otwarcie 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() zamyka przeglądarkę. Aby stworzyć opóźnienie, używamy Thread.sleep(3000) .

Zdobywanie pierwiastków w selenie

Każdy element HTML w Selenium nazywa się WebElement . Na przykład, p tag byłby WebElement An tag byłby a WebElement itp Rozważmy następujący HTML strukturę:

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

Teraz, jeśli chcemy dostać a znacznik, możemy zrobić

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

Teraz możemy to kliknąć, klikając

link.click();

Weźmy inny przykład. Gdybyśmy chcieli tekst znacznika p , tzn.To jest akapit ”, możemy to zrobić

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

Możemy również pobrać elementy według tagów, takich jak

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

Przykład roboczy w selenie

Teraz, gdy znamy podstawy Selenium, możemy stworzyć własny projekt. W tym przykładzie stworzymy program, który znajdzie najnowsze pytania dotyczące przepełnienia stosu.

Zaczynamy łatwo, pozwalamy otworzyć przepełnienie stosu.

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

Teraz, jeśli spojrzeć na źródło strony, można zauważyć, że wszystkie pytania, to a znaczniki, a className z question-hyperlink . Jednakże, ponieważ istnieje wiele pytań, używamy List z WebElement zamiast WebElement . W ten sposób możemy to zrobić

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

Teraz musimy uzyskać href atrybutu a tagu, który ma związek z pytaniem. Aby to zrobić, możemy użyć getAttribute("href") na każdym WebElement , np

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

Spowoduje to wydrukowanie łączy do najważniejszych pytań dotyczących przepełnienia stosu.

Uzyskiwanie atrybutów elementów sieciowych w Selenium

Aby uzyskać atrybut WebElement , używamy getAttribute na tym WebElement . Weźmy na przykład następujący znacznik HTML

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

Możemy znaleźć atrybut href elementu według

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
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow