selenium 找元素的方法
来源:互联网 发布:java中的compare 编辑:程序博客网 时间:2024/05/30 13:43
一、找元素的方法By方法
1、By.id:一般都是唯一的 eg:id = name
2、By.name:页面若有多个name,则会选中第一个name eg:name = name
3、By.className: eg:class =name
Selenium WebDriver提供了findElement()方法来定位页面中需要测试的元素。当开始寻找符合指定条件元素时,它将会查询整个DOM,然后返回第一个找到的匹配的元素
More:
如果页面上有一些重复的元素。但是他们在不同的<div>中。需要先定位父元素<div>,再定位其子元素,方法如下:
4、WebElement div =driver.findElement(By.id(“div1”));
WebElement topLink = div.findElement(By.linkText(“top”));
也可以缩写成一行:
WebElement topLink =driver.findElement(By.id(“div1”)).findElement(By.linkText(“top”))
5、By.linkText:
通过部分链接名称定位链接:
WebElement inboxLink =driver.findElement(By.partialLinkText(“inbox”));
System.out.println(inboxlink.getText());
6、By.tagName()和getElementByTagName()很相似
如果想统计<table>中邮多少行,可以这样做
WebElement table =driver.FindElement(By.id(“summaryTable”));
List<WebElement> rows =table.findElement(By.tagName(“tr”));
assertEquals(10,rows.size());
7、By.linkText()
WebElement gmailLink = driver.findElement(By.linkText(“Gmail”));
assertEquals(“http://mail.google.com/”,gmailLink.getAttribute(“href”));
8、通过部分链接名称定为链接
PartialLinkTest()来定位固定的已知不变的一部分名称
WebElement inboxLink =driver.findElement(By.partialLinkText(“Inbox”));
System.out.println(inboxLink.getText());
9、cssSelector这种方式,有限制,取决于页面的整个结构。若有改变,则找不到该元素。
By.cssSelector(“html>body>div>div>form>input”)
使用相对路径来定位元素
可以用class属性定为元素,先指定一个HTML标签,加一个.符号,跟上class属性的值。
WebElement loginButton = driver.findElement(By.cssSelector(“input.login”));
(By.cssSelector(“.login”));
此方法,与By.className()很相似
用相对ID选择器来定位元素.可以先指定一个HTML标签,再加上一个#,跟上id的属性值
WebElement username =driver.findElement(By.cssSelectro(“input#userName”))
(By.CssSelector(“#userName”));这里跟id选择器很像。
使用input中的name属性定为。
WebElement username =driver.findElement(By.cssSelector(“input [name=username]”))
类似于By.name()方法
定位<img>元素
WebElement previousButton =driver.findElement(By.cssSelector(“img [alt = ‘Previous’]”));
使用多个属性定位<input>元素
WebElement previousButton =driver.findElement(By.cssSelector(“input [type = ‘submit’][value = ‘login’]”))
使用属性名称选择器来定为元素。
与之前的不同,我们只通过指定元素中属性的名称而不是属性的名字来定为元素。
List<WebElement> imageWithAlt =driver.findElements(By.cssSelector(“img[alt]”));
Not()伪类也使用来匹配不满足规则的元素。如,想要定位<img>标签中不含alt属性
方法如下:
List<WebELlment> imageWithoutAlt =driver.findElements(By.cssSelector(“img:not([alt])”))
一、使用xpath定位元素
1、 使用绝对路径定位用户名字段,在每个元素之间需要有一个空格
WebElement username= driver.findElement(By.xpath(“html/body/div/div/form/input”))
通过相对路径 (By.xpath(“//input”));
2、 通过索引定位元素。找到第二个<input>
WebElement username = driver.findElement(By.xpath(“//input[2]”))
3、 xpath中使用元素的属性定位元素。如ID
WebElement passwd = driver.findElement(By.xpath(“//input[@id=’username’]”))
使用alt属性定位image
WebElement previousButton =driver.findElement(By.xpath(“//input[@alt = ‘previous’]”))
使用多个属性来定位<input>元素,可以使用or或and
WebElement previousButton =
driver.findElement(By.xpath(“//input[@type= ‘submit’][@value = ‘login’]”))
4、 使用指定元素中属性的名称而不是属性的值来定位元素。Eg:
List<WebElement> imageWithAlt =driver.findElements(By.xpath(“img[@alt]”));
- selenium 找元素的方法
- selenium webdriver 找页面元素
- Selenium定位页面元素的方法
- Selenium等待元素的处理方法
- Selenium 找不到元素的处理方法
- selenium处理隐藏元素的方法
- selenium操作元素时的实用方法
- selenium 查找元素方法的总结
- selenium----简单的页面元素查找方法
- selenium 页面元素的定位方法
- Selenium:元素等待的4种方法
- selenium获取input元素值的方法
- Python-Selenium修改div元素的方法
- selenium元素定位方法
- selenium元素定位方法
- Python+Selenium xpath 定位遇到相同元素时的解决方法父节点找子节点
- selenium的元素定位
- Selenium 更强的查找元素的方法
- SpringMVC+Mysql实例详解
- mahout安装测试
- Python的Logging使用教程
- 黑马程序员_Collection集合之Set
- POJ1905-----Expanding Rods
- selenium 找元素的方法
- 技术类
- 字典树
- 从3D打印成本来看3D打印的预测
- maven工程目录中各个文件的作用
- 【面试题之算法部分】二叉树的遍历
- A Flexible New Technique for Camera Calibration
- hdu 4576 概率dp
- LeetCode:Excel Sheet Column Number