範例:搜尋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應用 