系列資源:javascript
CSS (Cascading Style Sheets) 用於渲染HTML元素標籤的樣式。在定位web元素的時候咱們可使用css selector來定位元素。關於css的具體教程,能夠參考http://www.w3school.com.cn/cssref/css_selectors.asp。這裏給你們介紹一種使用CSS快速定位的方法: 打開Chrome開發者工具,定位到百度輸入框。 在元素上右鍵--Copy--Copy XPath
,以下圖:css
對應代碼:html
require('chromedriver')
const { Builder } = require('selenium-webdriver')
let driver = new Builder().forBrowser('chrome').build()
driver.get('http://www.baidu.com')
// 使用css路徑選擇器查找元素
driver.findElement({css:'#kw'}).sendKeys('CukeTest')
複製代碼
selenium-webdriver提供經過匹配超連接文本的方式來定位元素,例如,百度首頁能夠跳轉到 新聞 hao123 地圖 等頁面。咱們能夠經過連接文本值來定位元素位置。java
例如,咱們要點擊 新聞 跳轉到新聞頁面。 代碼能夠以下:node
require('chromedriver')
const { Builder } = require('selenium-webdriver')
let driver = new Builder().forBrowser('chrome').build()
driver.get('http://www.baidu.com')
// 使用linkText查找元素
driver.findElement({linkText:'新聞'}).click()
複製代碼
經過linkText的方式咱們能夠定位有超連接的元素。partialLinkText提供模式匹配,好比我要在百度首頁點擊 新聞 超連接,使用LinkText定位的時候,須要所有匹配。而使用partialLinkText方式的時候,只須要匹配其中的一個字符就能夠,能夠簡單理解爲SQL中的模糊查詢。以百度首頁爲例,我如今要點擊新聞 連接,就能夠這樣來寫代碼:git
require('chromedriver')
const { Builder } = require('selenium-webdriver')
let driver = new Builder().forBrowser('chrome').build()
driver.get('http://www.baidu.com')
// 使用partialLinkText查找元素
driver.findElement({partialLinkText :'聞'}).click()
複製代碼
tagName爲html中每一個元素標籤名。如下圖爲例:github
咱們看到每一個元素都是由特定的標籤組成,可是通常在web設計中每種標籤均可以出現好屢次,因此在selenium自動化代碼中,幾乎不會用到tagName這個方式去定位元素。同時,selenium-webdriver官方API中也不鼓勵你們使用這種方式定位元素。能夠參考 APIweb
獲取更多資訊,能夠關注公衆號,也能夠加QQ羣:707467292 進行node.js自動化相關技術交流。chrome