日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

使用Java的Selenium:Google搜索

發布時間:2023/12/3 java 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用Java的Selenium:Google搜索 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.概述

在本教程中,我們將探討如何將Selenium與Java結合使用。 我們將使用Selenium打開Goog??le,進行搜索,然后單擊URL。

該代碼在Github上可用。

2.什么是硒?

Selenium使Web瀏覽器自動化。 就是這樣

Selenium使我們能夠模擬用戶與網頁的交互。 我們可以使用兩種Selenium產品:Selenium WebDriver和Selenium IDE。 我們將使用WebDriver。

什么是WebDriver? WebDriver是官方的W3C規范,從本質上講,它是與Web瀏覽器進行交互的一種方式。 以前,使用Selenium RC,Selenium可以通過注入JavaScript與元素進行交互來與瀏覽器一起運行。 隨著WebDriver規范的采用,諸如Google,Mozilla和Microsoft之類的公司發布了具有受Selenium可以利用的鉤子控制的功能的瀏覽器。 這個鉤子使Selenium可以像人類一樣與Web瀏覽器進行交互。

我們將使用Google Chrome,因此需要下載chromedriver 。

下載驅動程序后,我們需要執行文件。
在Mac上,我們可以簡單地執行以下操作:

./chromedriver

3. pom.xml

我使用Spring Tool Suite并創建了一個新的Spring Starter項目,這不是必需的,但我傾向于喜歡Spring。 所以Selenium實際上是由Spring Boot Starter Parent管理的。 版本是2.53.1。

<!-- typical pom beginning--><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.10.RELEASE</version><relativePath /> <!-- lookup parent from repository --></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version></properties><dependencies><dependency><groupId>com.h2database</groupId><artifactId>h2</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-java</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build> <!-- typical pom ending-->

4.打開Chrome和搜索

對于此步驟,我們將建立與chromedriver的連接,打開瀏覽器,并搜索“ Selenium”。

我們將localhost作為目標端口,因為chromedriver在本地服務器的端口9515上運行。

RemoteWebDriver實現了WebDriver ,WebDriver的目標是提供一個面向對象的API,該API為現代高級Web應用程序測試問題提供支持。 因此,基于這些事實,我們可以說RemoteWebDriver是允許使用遠程瀏覽器的實現。 好處包括將測試的運行位置與瀏覽器所在的位置分開,以及使用當前操作系統上不可用的瀏覽器進行測試的能力。 缺點包括以下事實:我們需要一個外部servlet容器來運行,并且如果引發異常,則可能會有延遲。

// create a Chrome Web DriverURL local = new URL("http://localhost:9515");WebDriver driver = new RemoteWebDriver(local, DesiredCapabilities.chrome());// open the browser and go to open google.comdriver.get("https://www.google.com"); driver.findElement(By.id("lst-ib")).sendKeys("Selenium");driver.findElement(By.name("btnK")).click();driver.manage().window().maximize();

5.獲取頁面并單擊

WebDriver為我們提供了findElement和findElements方法來在網頁上定位元素。 這些方法接受By對象作為參數。 By具有借助定位符值在文檔中定位元素的方法。 Selenium已經很好地記錄了他們的API 。

一旦我們了解了如何使用Selenium來標識元素,就可以輕松閱讀任何driver.findElements(By…)方法。 但是我們也需要知道如何編寫它們。 使用Chrome之類的瀏覽器,我們可以右鍵單擊(或等效按鈕)以檢查元素以獲取其HTML / CSS信息。 另外,我們也可以“查看源代碼”以獲取更多完整信息。

為了演示如何在網頁上滾動,我們執行jse.executeScript(“ window.scrollBy(0,250)”,“”) 。
顧名思義, JavaScriptExecutor執行JavaScript。 JavaScriptExecutor是通過Selenium WebDriver提供的接口。 它提供了兩種方法“ executescript”和“ executeAsyncScript”以在所選窗口或當前頁面上運行javascript。

使用下面的代碼,可以創建一個更全面的漫游器來搜索Google并單擊幾個頁面的URL。

// get the number of pagesint size = driver.findElements(By.cssSelector("[valign='top'] > td")).size();for(int j = 1 ; j < size ; j++) {if (j > 1) {// we don't need to navigate to the first pagedriver.findElement(By.cssSelector("[aria-label='Page " + j + "']")).click(); // navigate to page number j}String pagesearch = driver.getCurrentUrl();List<WebElement> findElements = driver.findElements(By.xpath("//*[@id='rso']//h3/a"));System.out.println(findElements.size());for(int i=0;i<findElements.size();i++){findElements= driver.findElements(By.xpath("//*[@id='rso']//h3/a")); findElements.get(i).click(); driver.navigate().to(pagesearch);JavascriptExecutor jse = (JavascriptExecutor) driver;//Scroll vertically downward by 250 pixelsjse.executeScript("window.scrollBy(0,250)", "");}}

六,結論

這是Java Selenium的基本介紹。 正如我們發現的那樣,在Selenium Webdriver中,定位器(如XPath,CSS等)用于標識和執行Web頁面上的操作。 也可以執行任意JavaScript。
完整的代碼可以在Github上找到。

翻譯自: https://www.javacodegeeks.com/2018/02/selenium-java-google-search.html

總結

以上是生活随笔為你收集整理的使用Java的Selenium:Google搜索的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。