Selenium学习笔记(二)——常用操作与方法简介
2017-07-16 11:09
323 查看
定位页面元素
Selenium使用WebDriver.findElement(By.locator())的方式定位页面元素。locator有下面几种方式:方式 | 搜索依据 |
---|---|
By.className | class属性 |
By.cssSelector | 使用css选择器定位拥有特定css样式的元素 |
By.id | id属性 |
By.name | name属性 |
By.tagName | 节点名称 |
By.xpath | 节点路径 |
By.linkText | 连接的准确名称 |
By.partialLinkText | 连接名称包含字符 |
使用By.xpath时要注意,绝对路径以单/号表示,而相对路径则以//表示。另外需要多说一句的是,当xpath的路径以/开头时,表示让xpath解析引擎从文档的根节点开始解析。当xpath路径以//开头时,则表示让xpath引擎从文档的任意符合的元素节点开始进行解析。Firefox的firebug,Chrome的开发者工具等许多工具可以帮助我们快速获取元素的xpath。而且一般不推荐使用绝对路径的写法,因为一旦页面结构发生变化,该路径也随之失效,必须重新写。
而Selenium官网的Document里极力推荐使用CSS locator,而不是XPath来定位元素,原因是CSS locator比XPath locator速度快,特别是在IE下面(IE没有自己的XPath 解析器(Parser))他比xpath更高效更准确更易编写,美中不足是根据页面文字时略有缺陷没有xpath直接。
因为前端开发人员就是用CSS Selector设置页面上每一个元素的样式,无论那个元素的位置有多复杂,他们能定位到,那我们使用CSS Selector肯定也能非常精准的定位到页面Elements。
CSS 选择器参考手册:http://www.w3school.com.cn/cssref/css_selectors.asp
By.linkText与By.partialLinkText只依据连接显示的名称,不受任何格式标签,如<em>的影响。
获取页面信息
我们可以通过getXXX方法来获得页面或元素的信息:方法 | 描述 |
---|---|
WebDriver.get(“url”) | 自动打开一个浏览器窗口并跳转到给定的url |
WebDriver.getTitle() | 获得当前页面的标题 |
WebDriver.getPageSource() | 获取当前页面的源代码 |
WebDriver.getText() | 获取元素内的字符 |
导航命令
下面的命令可以帮助我们完成刷新,返回等导航操作:方法 | 描述 |
---|---|
WebDriver.navigate().to() | 与get()一样,打开一个新的浏览器窗口并跳转到指定页面 |
WebDriver.navigate().refresh() | 刷新页面 |
WebDriver.navigate().back() | 返回到前一个页面 |
WebDriver.navigate().forward() | 前进到后一页面 |
关闭浏览器窗口
WebDriver.close() 只关闭浏览器窗口,driver仍然是可以操作的。WebDriver.quit() 关闭所有窗口,并且退出driver。
切换
页面框:WebDriver.switchTo().frame()弹出窗口:WebDriver.switchTo().alert()
窗口:WebDriver.switchTo().window()
元素操作
下表是一些对页面元素的操作方法:Element | Command | Description |
Input Box | sendKeys() | used to enter values onto text boxes |
clear() | used to clear text boxes of its current value | |
Check Box, Radio Button, | click() | used to toggle the element on/off |
Links | click() | used to click on the link and wait for page load to complete before proceeding to the next command. |
Submit Button | submit() | |
Drop-Down Box | selectByVisibleText()/ deselectByVisibleText() | selects/deselects an option by its displayed text |
selectByValue()/ deselectByValue() | selects/deselects an option by the value of its “value” attribute | |
selectByIndex()/ deselectByIndex() | selects/deselects an option by its index | |
isMultiple() | returns TRUE if the drop-down element allows multiple selection at a time; FALSE if otherwise | |
deselectAll() | deselects all previously selected options |
相关文章推荐
- Java常用的一些多媒体文件基本操作方法简介
- VB使用ADODB操作数据库的常用方法
- php操作redis常用方法代码例子
- STL map常用操作简介
- C常用的对数组操作的几个方法
- python文件目录操作常用方法总结
- POI操作Excel常用方法总结
- 关于寄存器操作的一些常用方法
- GMap常用属性(方法)简介
- Asp.net内置对象之Cookies(简介/属性方法/基本操作及实例)
- js String对象中常用方法小结(字符串操作)
- jQuery 常见操作实现方式和常用函数方法总结
- UNIX常用命令详解及UNIX系统上的文本操作简介
- asp.net操作xml数据常用方法小结
- jquery操作input、select、checkbox、radio常用方法
- 30个php操作redis常用方法代码例子
- Java更新XML的四种常用方法简介
- POI操作Excel常用方法总结
- php操作mysql常用方法
- php 处理ftp常用操作与方法