Mac系統下Selenium4.0使用二三事

Mac系統(10.15)下使用Selenium4.0啓動Chrome(80.*)的若干問題

新的開始

由於之前都是在Windows下使用各種開發工具,此次轉戰Mac平臺,從系統的熟悉,到基本軟件的安裝也是經歷了一個不小的轉變。
本文的目的:使用Mac系統,搭建一個Selenium平臺,然後從IDEA中打開Chrome瀏覽器,在網上看過了各種版本,自己實踐起來確實遇到不少問題,做個簡要地記錄。

環境搭建

  1. IDEA的安裝:目前IDEA分爲“究極”版和社區版,我使用的是破解的究極版本,在此提供網站,裏面有很多MAC軟件的下載和破解流程,相當詳細,不同系統的軟件陣地,真是各有一方天地。 精品MAC應用分享
  2. Selenium的安裝:兩種方法,一種是直接進行jar包的下載,然後根據需要進行導入,另一種方法是在安裝好的IDEA中建立Maven工程,直接通過pom文件進行導入。
    第一種方法:下載Selenium Standalone Server 和selenium-java-*
    第二種方法:直接在工程中導入,可在最新Maven庫中查找selenium的各種版本
  3. Webdriver的安裝:本次我們使用最新版的Chrome進行selenium的調試,需要下載對應版本的瀏覽器的驅動,如何知道自己Chrome的版本,請在瀏覽器中輸入:chrome://version/ 進行查看,我本次使用的瀏覽器版本號爲:80.0.3987.149 (正式版本) (64 位),但是在驅動網站並沒有80.0.3987.149 對應的驅動,錯誤的下載了一個叫LATEST_RELEASE_80.0.3987的文件,調試幾次發現不對勁,然後在驅動下載網站下載了80.0.3987.16版本的驅動,事實證明是沒有問題的。
    驅動安裝好之後將文件放置在/usr/local/bin目錄下

代碼構建

以上步驟操作無誤之後,打開IDEA,建立Spring Boot項目,打開pom文件,寫入依賴:

<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>4.0.0-alpha-5</version>
</dependency>

爲了後續方便,又引入了以下依賴:

<!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>28.2-jre</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpcore -->
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpcore</artifactId>
            <version>4.4.13</version>
        </dependency>

引入以來之後,開始寫代碼,正常建立一個Java類進行測試,我的代碼如下:

package com.example.demo;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class Selenium_test {
    public static void main(String[] args) {
        System.setProperty("webdriver.chrome.driver","/usr/local/bin/chromedriver");
        WebDriver driver=new ChromeDriver();
        driver.get("http://taobao.com");

        String title=driver.getTitle();
        System.out.println(title);

        driver.close();
    }
}

執行代碼,控制欄結果顯示:

Starting ChromeDriver 80.0.3987.106 (f68069574609230cf9b635c1bf81bb53a-refs/branch-heads/3987@{#882}) on port 30060
Only local connections are allowed.
Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.
三月 **, 2020 ******** 下午 org.openqa.selenium.remote.ProtocolHandshake createSession
信息: Detected dialect: W3C
[1585120476.302][SEVERE]: Timed out receiving message from renderer: 0.100
[1585120476.865][SEVERE]: Timed out receiving message from renderer: 0.100
[1585120477.326][SEVERE]: Timed out receiving message from renderer: 0.100
[1585120477.623][SEVERE]: Timed out receiving message from renderer: 0.100
淘寶網 - 淘!我喜歡

另外會有如下顯示:
IDEA調用Chrome瀏覽器打開相應的網頁
在寫代碼的時候需要注意幾個小問題:
瀏覽器的驅動在放入相應的文件夾之後,需要進行設置,即代碼:

System.setProperty("webdriver.chrome.driver","/usr/local/bin/chromedriver");

此處要寫完整路徑"/usr/local/bin/這樣寫都會出現驅動初始化報錯問題,第一次玩Selenium,還算比較可以,期待學習更多有趣的功能模塊來玩耍。

如果覺得本文寫的還不錯的夥伴,可以給個關注一起交流進步,如果有在找工作且對阿里感興趣的夥伴,也可以發簡歷給我進行內推:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章