selenium定位元素的8种方法
By.id,By.name,By.tagName,By.className,By.linkText,By.partialLinkText,By.xpath,By.cssSelector
<a href=http://news.baidu.com target=_blank class=mnav>新闻</a>
By.linkText("新闻");
By.partialLinkText("闻");By.partialLinkText("新");By.partialLinkText("新闻");
By.xpath
//input[@id='kw']"
//input[contains(@class,'s_ipt') and contains(@name,'wd')]
//input[@class='s_ipt' and @type='text']
By.cssSelector常用符号说明
# 表示id
. 表示class
> 表示子元素,层级
一个空格也表示一个子元素,但是所有的子元素相当于xpath中的相对路径
#form id为form的节点
.fm class为fm的节点
form#form>span id为form的form节点下的span
form#form span id为form的form节点下的span
form#form span input:nth-of-type(1) id为form的form节点下的span节点下第一个input
form[@name='f'][@id='form'] nth-child(1) id为form的form节点下第一个节点
form#form span+lable id为form的form节点下第一个span挨着的lable
form#form span~lable id为form的form节点下第一个span所有的lable
.......太多了
以百度搜索框为例:
By.cssSelector("form#form>span>input");
By.xpath("//input[@id='kw']")