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='登入']"));
參考:
沒有留言:
張貼留言