Quantcast
Channel: 簡睿隨筆
Viewing all articles
Browse latest Browse all 897

AutoHotkey-Selenium WebDriver查詢頁面元素方法彙總

$
0
0

查詢頁面元素的技巧

1. driver.findElementBy…

…為Name, Id, Tag, Class, CSS, LinkText, PartialLinkText, XPath等
明確尋找方式時直接使用

2. By與findElement

By.查詢方法(查詢元素字串)
查詢方法有方法一的8種,再加上 Any,

By := ComObjCreate("Selenium.By")

element := driver.findElement(By.CSS("CSS字串"))

byAny := By.Any(By.Id("stock_id"), By.Name("stock_id"))

element := driver.findElement(byAny)

判斷元素是否存在的方法

  1. WebElement的IsPresent特性
element := driver.findElementByID("stock_id")

isPresent := element.IsPresent

實際執行時,若網頁沒有被尋找的元素時就會跳出錯誤訊息。使用額外參數以避免錯誤訊息:

element := driver.findElementByID("stock_id", iTimeout, 是否彈出錯誤訊息)
  1. WebElements的Count特性
elements := driver.findElementsByName("stock_id")

iCount := elements.Count
isPresent := (iCount > 0)
  1. driver.Until()

語法:

driver.until(判斷用函數, 逾時毫秒數)

AutoHotkey的函數物件

fn := Func(“函數名稱”)
fn := Func(“函數名稱”).bind(參數)

fnIsPresent1 := Func("isExistByID").bind("stock_id")
driver.until(fnIsPresent1, 10000)

fnIsPresent := Func("isExist").bind(By.ID("stock_id")
driver.until(fnIsPresent, 10000)

IsExistByID(sStockID) {
  ele := driver.findElementByID(sStockID)
  return ele.IsPresent
}

IsExist(by) {
  ele := driver.findElement(by)
  return ele.IsPresent
}
  1. Waiter物件

有更多的等待方法可使用。

test26_selenium5_until.ahk

解說影片

##

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


Viewing all articles
Browse latest Browse all 897

Trending Articles