您的位置:首页 > 其它

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

2017-07-16 11:09 323 查看

定位页面元素

Selenium使用WebDriver.findElement(By.locator())的方式定位页面元素。locator有下面几种方式:

方式搜索依据
By.classNameclass属性
By.cssSelector使用css选择器定位拥有特定css样式的元素
By.idid属性
By.namename属性
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()也能实现提交表单。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  selenium