Selenium 學習筆記 (一)

bobo發表於2020-05-29

Selenium學習筆記

有用的連結

  1. selenium 官網: https://www.selenium.dev/
  2. Chromedriver 下載連結: https://chromedriver.chromium.org/
  3. webDriver的語法: https://www.selenium.dev/documentation/zh-cn/webdriver/
  4. webdriver cookie的程式碼使用: https://www.selenium.dev/documentation/zh-cn/support_packages/working_with_cookies/ 環境: Mac OS, Java

安裝

  • maven install selenium <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>3.141.59</version> </dependency> java
  • chromeDriver install
    1. 下載 WebDriver 二進位制檔案: https://chromedriver.chromium.org/
    2. 系統 PATH 環境變數: export PATH=$PATH:/opt/WebDriver/bin >> ~/.profile, 使用chromedriver命令檢測是否安裝成功
  • chrome debug
    1. 找到google chrome存放的位置, 再配置環境變數
    2. Google\ Chrome --remote-debugging-port=9222 使用這個命令檢視, 是否配置好. Google Chrome之間是空格, 命令列時,不要忘記新增反斜槓

程式碼編寫

獲得頁面

driver.get(String url)

public static void setup(){
System.setProperty("webdriver.chrome.driver", "/Users/xhou/WebDriver/bin/chromedriver");
WebDriver webDriver=new ChromeDriver();
webDriver.get("https://work.weixin.qq.com/wework_admin/frame");
}

get程式碼如下:

瀏覽器頁面複用

  1. 在瀏覽器全部關閉的情況下, 開啟debug模式: Google\ Chrome --remote-debugging-port=9222
  2. 在程式碼中作如下編寫

cookie使用

  1. 文件: https://www.selenium.dev/documentation/zh-cn/support_packages/working_with_cookies/
  2. 儲存cookie

    1. 開啟頁面;
    2. 掃碼/賬號登入
    3. 使用瀏覽器複用技術, 在同一個瀏覽器載入頁面,在這一步, webdriver裡才獲取了登入後的cookie
    4. 把cookie存入文件,或變數. 現在的程式碼是存入文件
  3. 設定cookie

    1. 開啟頁面
    2. 從文件裡讀出cookie, 再設定到webDriver中
    3. 可以看到瀏覽器自動登入了

讀寫程式碼總結

  1. FileReader & FileReader
    1. 區別: 是否耗費IO
    2. Buffered使用緩衝區的, FileReader是一個位元組一個位元組讀, 很耗費IO, 效能差; BufferedReader是放入緩衝區, 再從緩衝區讀取, 效能好
  2. FileWriter & BufferedWriter
    1. 區別: 是否耗費IO
    2. Buffered使用緩衝區的, 所以bufferedWriter.write(String s)後, 一定要使用bufferedWriter.flush(), 不然資料不會寫進文件
  3. FileReader/FileReader/FileWriter/BufferedWriter 一定要記得close()

String.split(regex,limit)用法

案例: String date = "date:Wed Jan 10 10:43:36 CST 2012 "
我想取date後面的內容: date.split[":",2]

SimpleDateFormat的用法

參考資料: https://www.runoob.com/java/java-date-time.html
Date dateValue = new Date()
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.ENGLISH);
date = simpleDateFormat.parse(dateValue);

相關文章