[跟著官方文檔學Selenium][學習筆記][三][WebDriver入門指南]

      網友投稿 1307 2022-05-29

      WebDriver以本地化方式驅動瀏覽器,就像用戶在本地或使用Selenium服務器的遠程機器上所做的那樣,這標志著瀏覽器自動化的飛躍。

      Selenium WebDriver指的是語言綁定和各個瀏覽器控制代碼的實現。通常稱為WebDriver。

      Selenium WebDriver是W3C推薦標準

      WebDriver被設計成一個簡單和簡潔的編程接口

      WebDriver是一個簡潔的面向對象API

      它能有效驅動瀏覽器

      Selenium通過使用WebDriver支持市場上所有主流瀏覽器的自動化。WebDriver是一個API和協議,它定義了一個語言中立的接口,用于控制Web瀏覽器的行為。每個瀏覽器都有一個特定的WebDriver實現,稱為驅動程序。驅動程序是負責委派給瀏覽器的組件,并處理與Selenium和瀏覽器之間的通信。

      這種分離是有意識地努力讓瀏覽器供應商為其瀏覽器的實現負責的一部分。Selenium在可能的情況下使用這些第三方驅動程序,但在這些驅動程序不存在的時候,也提供了由項目自己維護的驅動程序。

      Selenium框架通過一個面向用戶的界面將所有這些部分連接在一起,該界面允許透明地使用不同的瀏覽器后端,從而實現跨瀏覽器和跨平臺自動化。

      Selenium設置與其他商業工具的設置完全不同。要在自動化項目中使用Selenium,需要為每種語言安裝語言綁定庫。此外,對于要自動運行并運行測試的瀏覽器,需要WebDriver的執行文件。

      安裝Selenium分為三個步驟:

      為你選擇的編程語言安裝Selenium類庫

      配置瀏覽器驅動以驅動你的瀏覽器(如msedgedriver用于Edge瀏覽器)

      (可選)設置和配置Selenium Grid用于拓展測試

      安裝類庫

      首先,為自動化項目安裝Selenium綁定庫。

      這里以Java為例,新建Maven項目,在pom.xml中添加selenium-java依賴項

      org.seleniumhq.selenium selenium-java 4.1.2

      selenium-java依賴項支持在所有Selenium支持的瀏覽器中運行自動化項目。如果只想在特定的瀏覽器中進行測試,可以在pom.xml文件中添加該瀏覽器的依賴項。例如,只想在Edge上運行測試,可以添加以下依賴項:

      org.seleniumhq.selenium selenium-edge-driver 4.1.2

      安裝驅動

      通過WebDriver,Selenium支持市場上所有主流瀏覽器(Chrome、Firefox、Internet Explorer、Edge、Opera和Safari),WebDriver盡量使用瀏覽器內置的自動化支持 來驅動瀏覽器。

      由于除IE瀏覽器之外的所有驅動程序實現都是由瀏覽器供應商自己提供的,因此標準Selenium發行版不包括驅動程序

      快速參考

      使用驅動的三種方式

      驅動管理軟件

      大多數機器都會自動更新瀏覽器,但驅動程序不會。為了確保為瀏覽器提供正確的驅動程序,這里以Java語言為例

      //導入WebDriver Manager import io.github.bonigarcia.wdm.WebDriverManager; //調用setup()方法來設置正確的瀏覽器驅動 WebDriverManager.edgedriver().setup(); //初始化驅動 WebDriver driver = new EdgeDriver();

      PATH環境變量

      此選項首先需要手動下載驅動程序,是一個靈活的選項,可以在不更新代碼的情況下更改驅動程序的位置,并且可以在多臺機器上工作,而不需要每臺機器將驅動程序放在同一位置。

      可以將驅動程序放置在路徑中已列出的目錄中,也可以將其放置在目錄中并將其添加到PATH中

      //要查看PATH上有哪些目錄,打開命令提示符輸入 echo %PATH% //如果還沒有進入PATH路徑中,可以輸入如下指令添加到PATH中 setx PATH "%PATH%;C:\WebDriver\bin" //可以在命令行輸入WebDriver名字驗證是否成功添加PATH chromedriver.exe //如果PATH配置正確,將看到一些與驅動程序啟動相關的輸出 Starting MSEdgeDriver 99.0.1150.36 (c438621746b2932668109129d137a7e3a22ef4fd) on port 9515 Only local connections are allowed. Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping MSEdgeDriver safe. MSEdgeDriver was started successfully.

      硬編碼位置

      需要手動下載驅動程序,跟方式2類似。在代碼中指定位置本身的優點是不需要指出系統上的環境變量,但缺點是使代碼的靈活性大大降低。

      System.setProperty("webdriver.chrome.driver","/path/to/chromedriver"); ChromeDriver driver = new ChromeDriver();

      打開瀏覽器

      當完成了Selenium類庫安裝和驅動配置后,現在就可以使用瀏覽器啟動和停止會話。

      通常,瀏覽器都是根據特定的選項啟動,這些選項描述瀏覽器必須支持哪些功能,以及瀏覽器在會話期間應該如何運行。有些功能是所有瀏覽器共享,有些功能特定于所使用的瀏覽器。這里以Edge瀏覽器為實例。微軟Edge瀏覽器使用Chromium實現的,msedgedriver的主要版本號必須與Edge瀏覽器的主要版本匹配。

      import org.openqa.selenium.WebDriver; import org.openqa.selenium.edge.EdgeDriver; import org.openqa.selenium.edge.EdgeOptions; public class OpenBrowser { public static void main(String[] args) { WebDriver webDriver; EdgeOptions options = new EdgeOptions(); webDriver = new EdgeDriver(options); webDriver.quit(); System.out.println("成功打開并退出了Edge瀏覽器"); } }

      第一個腳本

      當能夠運用Selenium啟動關閉瀏覽器時就可以編寫第一個Selenium腳本

      Selenium的8個基本組件

      Selenium所做的一切,就是給瀏覽器發送指令,用以執行某些操作或為信息發送請求。

      是用驅動實例開啟會話

      WebDriver webDriver = new EdgeDriver();

      在瀏覽器執行操作(打開一個網頁)

      webDriver.get("https://www.baidu.com");

      請求瀏覽器信息(獲取標簽名稱)

      webDriver.getTitle();//百度一下,你就知道

      等待時間(設置瀏覽器延時)

      webDriver.manage().timeouts().implicitlyWait(Duration.ofSeconds(4));

      發送指令查找元素

      [跟著官方文檔學Selenium][學習筆記][三][WebDriver入門指南]

      WebElement searchButton = webDriver.findElement(By.id("su")); WebElement searchBox = webDriver.findElement(By.name("wd"));

      操作元素

      searchBox.sendKeys("Selenium"); searchButton.click();

      獲取元素信息

      searchBox = webDriver.findElement(By.name("wd")); String searchValue = searchBox.getAttribute("value"); System.out.println(searchValue);//Selenium

      結束會話

      webDriver.quit();

      完整例子:

      import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.edge.EdgeDriver; import java.time.Duration; public class FirstScript { public static void main(String[] args) { WebDriver webDriver = new EdgeDriver(); webDriver.get("https://www.baidu.com/"); String title = webDriver.getTitle(); System.out.println(title); webDriver.manage().timeouts().implicitlyWait(Duration.ofSeconds(4)); WebElement searchButton = webDriver.findElement(By.id("su")); WebElement searchBox = webDriver.findElement(By.name("wd")); searchBox.sendKeys("Selenium"); searchButton.click(); searchBox = webDriver.findElement(By.name("wd")); String searchValue = searchBox.getAttribute("value"); System.out.println(searchValue);//Selenium webDriver.quit(); } }

      Java Selenium

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:《智慧企業工業互聯網平臺開發與創新》 ——2.3.3 基于CPS理論建立新的企業數字化架構
      下一篇:云脈紙質文檔管理助力對文檔資源的再利用
      相關文章
      久久久久无码精品亚洲日韩| 亚洲今日精彩视频| 亚洲成人动漫在线观看| 亚洲精品国产美女久久久| 国产亚洲精品拍拍拍拍拍| 亚洲另类少妇17p| 精品国产亚洲男女在线线电影| 亚洲人成电影网站国产精品| 无码欧精品亚洲日韩一区夜夜嗨 | 亚洲最大视频网站| 亚洲欧洲国产日韩精品| 久久噜噜噜久久亚洲va久| 亚洲丁香色婷婷综合欲色啪| 亚洲免费在线视频| 亚洲成a人片7777| 97se亚洲国产综合自在线| 亚洲色偷偷综合亚洲av78| 亚洲av无码成人影院一区| 国产成人人综合亚洲欧美丁香花| 日韩精品亚洲专区在线观看| 亚洲国产高清在线一区二区三区| 亚洲精品岛国片在线观看| 久久久久亚洲AV无码专区网站| 中文亚洲成a人片在线观看| 国产亚洲AV夜间福利香蕉149| 亚洲国产精品无码专区影院| 亚洲国产日韩一区高清在线| 自怕偷自怕亚洲精品| 亚洲中字慕日产2021| 亚洲欧美国产国产一区二区三区| 亚洲av无一区二区三区| 亚洲A∨精品一区二区三区| 亚洲伊人久久大香线蕉综合图片| 亚洲av无码潮喷在线观看| 亚洲黄色免费网站| 亚洲一区在线视频| 亚洲av无码无线在线观看| 亚洲国产V高清在线观看| 国产亚洲精品成人a v小说| 久久精品国产精品亚洲艾草网 | 亚洲高清无在码在线电影不卡|