新的開始
由於之前都是在Windows下使用各種開發工具,此次轉戰Mac平臺,從系統的熟悉,到基本軟件的安裝也是經歷了一個不小的轉變。
本文的目的:使用Mac系統,搭建一個Selenium平臺,然後從IDEA中打開Chrome瀏覽器,在網上看過了各種版本,自己實踐起來確實遇到不少問題,做個簡要地記錄。
環境搭建
- IDEA的安裝:目前IDEA分爲“究極”版和社區版,我使用的是破解的究極版本,在此提供網站,裏面有很多MAC軟件的下載和破解流程,相當詳細,不同系統的軟件陣地,真是各有一方天地。 精品MAC應用分享
- Selenium的安裝:兩種方法,一種是直接進行jar包的下載,然後根據需要進行導入,另一種方法是在安裝好的IDEA中建立Maven工程,直接通過pom文件進行導入。
第一種方法:下載Selenium Standalone Server 和selenium-java-*
第二種方法:直接在工程中導入,可在最新Maven庫中查找selenium的各種版本 - 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
淘寶網 - 淘!我喜歡
另外會有如下顯示:
在寫代碼的時候需要注意幾個小問題:
瀏覽器的驅動在放入相應的文件夾之後,需要進行設置,即代碼:
System.setProperty("webdriver.chrome.driver","/usr/local/bin/chromedriver");
此處要寫完整路徑"/usr/local/bin/這樣寫都會出現驅動初始化報錯問題,第一次玩Selenium,還算比較可以,期待學習更多有趣的功能模塊來玩耍。
如果覺得本文寫的還不錯的夥伴,可以給個關注一起交流進步,如果有在找工作且對阿里感興趣的夥伴,也可以發簡歷給我進行內推: