WebDriver获取页面元素
上一篇 /
下一篇 2015-07-01 17:26:07
/ 个人分类:selenium
By.xpath()
注意:1. 元素的xpath绝对路径可通过firebug直接查询。2. 一般不推荐使用绝对路径的写法,因为一旦页面结构发生变化,该路径也随之失效,必须重新写。3. 绝对路径以单/号表示,相对路径则以//表示,这个区别非常重要。另外,当xpath的路径以/开头时,表示让Xpath解析引擎从文档的根节点开始解析。当xpath路径以//开头时,则表示让xpath引擎从文档的任意符合的元素节点开始进行解析。而当/出现在xpath路径中时,则表示寻找父节点的直接子节点,当//出现在xpath路径中时,表示寻找父节点下任意符合条件的子节点,不管嵌套了多少层级。弄清这个原则,就可以理解其实xpath的路径可以绝对路径和相对路径混合在一起来进行表示,想怎么玩就怎么玩 1、根据是否使用属性,Xpath的语法格式有两种:
不使用属性:按照html的层次,如/html/body/header/nav/ul[1]/li[5]/a/span
使用属性:如//input[@class='input'],直接定位多个属性来定位,如//input[@class='input’ and @type='text’]
xpath="//input[@name='wirelessResult'][@value='1']"
xpath="//div[contains(@style,'visibility:
visible')]//span/b[contains(text(),'系统异常')]"
findElement(By.xpath("//span[contains(text(),'"+spanContains+"')]"));可以通过传参的方式找到元素
td[not(contains(@style,' display: none'))]
div[@class='
x-panel x-panel-noborder'or@class='x-panel
x-panel-noborder']
By.
className
By.className(className)) ===Selenium2不支持类名中有空格
今天使用Selenium2进行查找元素的时候,因为要查找的元素有两个类名,因此使用了下面的代码获取元素:
WebElement submit =
driver.findElement(By.className("info_list login_btn"));
但是报了:
org.openqa.selenium.WebDriverException:
unknown error: Compound class names not permitted
原来Selenium2不支持类名中有空格,在Stackoverflow上面找到了方法,修改如下:
WebElement
submit = driver.findElement(By.cssSelector(".info_list.login_btn"))
收藏
举报
TAG:
元素