selenium总共提供了8种定位方法
方法 | 语法 | 描述 |
By ID | driver.findElement(By.id(<element ID>)) | 定位元素使用ID属性 |
By name | driver.findElement(By.name(<element name>)) | 定位使用Name属性的元素 |
By class name | driver.findElement(By.className(<element class>)) | 定位使用类属性的元素 |
By tag name | driver.findElement(By.tagName(<htmltagname>)) | 定位使用HTML标记元素 |
By link text | driver.findElement(By.linkText(<linktext>)) | 定位使用的链接文字链接 |
By partial link text | driver.findElement(By.partialLinkText(<linktext>)) | 定位链接使用链接的文字部分 |
By CSS | driver.findElement(By.cssSelector(<css selector>)) | 定位使用CSS选择器的元素 |
By XPath | driver.findElement(By.xpath(<xpath>)) | 定位使用XPath查询元素 |
下面来举一下例子: (全部是JAVA语法实现)
首先来一段html代码:
<html> <head> <body link="#0000cc"> <a id="result_logo" href="/" onmousedown="return c({'fm':'tab','tab':'logo'})"> <form id="form" class="fm" name="f" action="/s"> <span class="soutu-btn"></span> <input id="kw" class="s_ipt" name="wd" value="" maxlength="255" autocomplete="off">
我们的目的是要定位input标签的输入框。
1. 通过id定位:
driver.findElement(By.id("kw"));
2.通过name定位:
driver.findElement(By.name("wd"))
3.通过class name定位:
driver.findElement(By.className("s_ipt"))
4.通过tag name定位:
driver.findElement(By.tagName("input"))
5.通过xpath定位,xpath定位有N种写法,这里列几个常用写法:
driver.findElement(By.xpath("//*[@id='kw']")) driver.findElement(By.xpath("//*[@name='wd']")) driver.findElement(By.xpath("//input[@class='s_ipt']")) driver.findElement(By.xpath("/html/body/form/span/input")) driver.findElement(By.xpath("//span[@class='soutu-btn']/input")) driver.findElement(By.xpath("//form[@id='form']/span/input")) driver.findElement(By.xpath("//input[@id='kw' and @name='wd']"))
6.通过css定位,css定位有N种写法,这里列几个常用写法:
driver.findElement(By.cssSelector("#kw") driver.findElement(By.cssSelector("[name=wd]") driver.findElement(By.cssSelector(".s_ipt") driver.findElement(By.cssSelector("html > body > form > span > input") driver.findElement(By.cssSelector("span.soutu-btn> input#kw") driver.findElement(By.cssSelector("form#form > span > input")
7接下来,我们的页面上有一组文本链接(还可以用于下拉框等)
<a class="mnav" href="http://news.baidu.com" name="tj_trnews">新闻</a> <a class="mnav" href="http://www.hao123.com" name="tj_trhao123">hao123</a>
通过link text定位:
driver.findElement(By.linkText("新闻") driver.findElement(By.linkText("hao123")
通过link text定位:
driver.findElement(By.partialLinkText("新") driver.findElement(By.partialLinkText("hao") driver.findElement(By.partialLinkText("123")
当着8个定位无法解决是还可以使用JavaScript+jQuery的定位方法。
想了解更多的selenium使用Xpath+CSS+JavaScript+jQuery的定位方法可以参考
本站: https://www.gaoyaxuan.net/blog/54.html
还没有评论,来说两句吧...