selenium之定位元素

八種定位元素的方法

定位方法 selenium對應方法 說明
id findElement(By.id()) 元素的id
name findElement(By.name()) 元素的名稱
class name findElement(By.className()) 元素的類名
tag name findElement(By.tagName()) 元素的標籤,重複率太高,不推薦
link text findElement(By.linkText()) 元素鏈接的文本
partial link text findElement(By.partialLinkText()) 元素鏈接的文本中一部分
xpath findElement(By.xpath()) 相對/絕對路徑
css selector findElement(By.cssSelector()) css定位

具體用法

一. 定位input標籤的輸入框

<html>
  <head>
  <body link="#0000cc">
    <a id="result_logo" href="/" onmousedown="return c({'fm':'tab','tab':'logo'})">
    <form id="form" class="fm" name="f" action="/s">
      <span class="soutu-btn"></span>
        <input id="kw" class="s_ipt" name="wd" value="" maxlength="255" autocomplete="off">
  1. 利用id定位
driver.findElement(By.id("kw"));
  1. 利用name定位
driver.findElement(By.name("wd"));
  1. 利用class name定位
driver.findElement(By.className("s_ipt"));
  1. 利用tag name定位(注意,這種方法不推薦,因爲input標籤可能有很多個)
driver.findElement(By.tagName("input"));
  1. 利用css定位(css定位寫法有多種)
// 根據id來定位,可在前面加#符號
driver.findElement(By.cssSelector("#kw"));

//根據name來定位
driver.findElement(By.cssSelector("[name=wd]"));

//根據class name來定位,可在前面加.符號
driver.findElement(By.cssSelector(".s_ipt"));

//根據絕對路徑來定位,可在前面加.符號
driver.findElement(By.cssSelector("html > body > form > span >input"));

//前面幾種形式相結合
driver.findElement(By.cssSelector("span.soutu-btn >input#kw"));
driver.findElement(By.cssSelector("form#form > span >input"));

二. 定位文本鏈接

<a class="mnav" href="http://news.baidu.com" name="tj_trnews">新聞</a>
  1. 利用link text定位
driver.findElement(By.linkText("新聞"))
  1. 利用partial link text定位
driver.findElement(By.partialLinkText("新"))
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章