系列资源: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