AdSense

網頁

2017/12/26

Selenium HTML element locator 定位器

Selenium的HTML locator用來找尋網頁中的element,共有以下幾種locator。

  • ID
  • Name
  • Link Text
  • Partial Link Text
  • Tag Name
  • CSS Class
  • CSS Selector
  • XPath


ID

網頁中id是唯一的(雖然瀏覽器允許重複出現的情況),所以用ID來尋找element非常方便。例如找到下面的<input/>

<input id="user" class="required" type="text"/>
WebElement item = driver.findElement(By.id("user"));

如果Selenium在網頁中找到重複的element(例如兩個element的id相同)則會返回第一個找到的element。


Name

在一個form表單中,Name通常也是唯一的。

<input id="user" name="admin" class="required" type="text"/>
WebElement item = driver.findElement(By.name("admin"));

Link Text

使用連結<a>的文字來尋找element

<a href="http://www.techbeamers.com">How to use locators?</a>
WebElement item = driver.findElement(By.linkText("How to use locators?"));

Partial Link Text

類似Link Text locator,差別在於Partial Link Text是部分文字符合,Link Text必須全部文字符合。

<a href="http://www.techbeamers.com">How to use locators?</a>
WebElement item = driver.findElement(By.PartialLinkText("use locators?"));

Tag Name

根據HTML tag的名稱來找

<h3>根據HTML tag的名稱來找</h3>
List<WebElement> itemList = driver.findElements(By.tagName("h3"));

CSS Class Name

以CSS class名稱來找

<input id="user" class="required" type="text"/>
List<WebElement> itemList = driver.findElements(By.className("required"));

CSS Selector

使用CSS selector,類似jQuery的用法

<input id="user" class="required" type="text"/>
<input id="email" class="required" type="text"/>
WebElement item = driver.findElement(By.cssSelector("input[id='email']"));

XPath

使用XPath來尋找element,可用絕對路徑或相對路徑。

<input type="submit" value="登入"/>
WebElement item = driver.findElement(By.xpath("//input[@value='登入']"));

參考:

沒有留言:

AdSense