AutoHotkey-網頁自動化Selenium WebDriver由實例學習常用功能(使用XPATH CSS Explorer擴充)

範例:搜尋PCHome線上購物,將查詢的商品逐一開啟其訊息網頁

以ChromeDriver為例。

建立WebDriver物件並瀏覽網頁

driver := ComObjCreate("Selenium.ChromeDriver")

; 指定chrome.exe路徑
driver.setBinary("C:\Program Files (x86)\Google\Chrome\Application\chrome.exe")

; 設定新的執行環境
driver.SetProfile("z:\chrome")

; addArgument設定Chrome啟始狀態
driver.addArgument("start-maximized")
;driver.addArgument("headless")  ; 不顯示Chrome視窗
driver.addArgument("no-sandbox")
driver.addArgument("disable-gpu")
driver.addArgument("disable-infobars")  ; --disable-infobars is no longer supported since v76

; 下載目錄設定
;driver.setPreference("download.default_directory", "C:\temp")
;driver.setPreference("download.directory_upgrade", true)
;driver.setPreference("download.extensions_to_open", "")
;driver.setPreference("download.prompt_for_download", false)
;driver.SetCapability("debuggerAddress", "127.0.0.1:9222")

driver.get("要瀏覽的網址")

; 瀏覽器開啟後再變更狀態
;Driver.Window.Maximize()
;driver.window.setSize(800,600)

尋找網頁上的元素

尋找到的元素其類別是WebElement。

element := driver.findElementByName("用name屬性尋找")
element := driver.findElementByID("用id屬性尋找")
element := driver.findElementByTag("用HTML標籤尋找")
element := driver.findElementByClass("用class屬性尋找")
element := driver.findElementByCss("用CSS選擇器尋找")
element := driver.findElementByLinkText("用超連結的文字尋找")
element := driver.findElementByPartialLinkText("用超連結的部份文字尋找")
element := driver.findElementByXPath("用XPATH尋找")
  • 將findElementBy... 改成 findElementsBy... 就能取多個符合的元素(取得List)

XPath是什麼?

XPath,全稱為XML Path Language,即 XML路徑語言,它是在XML文件中尋找訊息的语言,除了搜尋XML檔,也適用搜尋HTML文件。

XPath CSS Explorer

可安裝類似XPath CSS Explorer之類的瀏覽器擴充,以方便查詢出頁面元素的CSS或XPath。

操作步驟:
1. 按〔F12〕進入DevTools模式
2. 用右鍵功能表→【檢查】,或DevTools最左邊的按鈕選取要查詢的元素
3. 點擊DevTools最右側的〔●●●〕,再按【XPath CSS Explorer】頁籤
4. 在【Current selector】下方複製需要的CSS或XPath

WebElement的常用方法

  • SendKeys(第一個按鍵 [,第二個按鍵])
  • Click(按鍵)
driver.FindElementByID("keyword").SendKeys("MSI Prestige 14")
driver.FindElementByID("doSearch").Click()

test24_selenium3.ahk

解說影片

##

您可能也會有興趣的類似文章

簡睿

服務於軟體業的資訊老兵。興趣廣泛,學習力佳,樂於分享所知所學。

您可能也會喜歡…

2 個回應

  1. Swahz7788表示:

    不知道老的IE浏览器有没有类似XPath CSS Explorer这样好用的插件?

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *