selenium
Pierwszy projekt w selenie z Javą
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 :
Konfigurowanie pomysłu IntelliJ dla Selenium
Wymagania wstępne:
- Java jest zainstalowana
- Selen jest wyodrębniany w folderze (zawiera 2 pliki i 1 folder)
Wykonaj następujące kroki, aby skonfigurować IntelliJ Idea for Selenium.
- Kliknij „Nowy projekt” .
- Wybierz aplikację Java <„Hello World”
- Wpisz nazwę projektu i utwórz go.
Twój ekran powinien wyglądać mniej więcej tak
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
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