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

解說影片

##


想在手機閱讀更多css資訊?下載【香港矽谷】Android應用
分享到Facebook
技術平台: Nasthon Systems