Selenium学习笔记(二)——常用操作与方法简介

定位页面元素

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与By.cssSelector是最为直观和准确的定位方式。
使用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()

元素操作

下表是一些对页面元素的操作方法:
ElementCommandDescription
Input BoxsendKeys()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
Linksclick()used to click on the link and wait for page load to complete before proceeding to the next command.
Submit Buttonsubmit()
Drop-Down BoxselectByVisibleText()/ 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
另外,在表单里的任意一个元素上调用submit()也能实现提交表单。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>