xpath和非xpath定位
xpath,描述页面元素位置信息的路径
非xpath定位:
1.By.id,根据元素的id来获取元素
2.By.name,根据元素的name属性来获取元素,可以是集合
3.By.tagName,根据元素的标签名来获取元素,可以是集合
4.By.className,根据元素的样式来获取元素,可以是集合
5.By.cssSelector,根据元素的css选择器来获取元素,可以是集合
例如:By.cssSelector("input")等同于By.tagName("input"),标签
By.cssSelector(".classNameValue")等同于By.className("classNameValue"),.className
By.cssSelector("#idValue")或者By.cssSelector("input#idValue")等同于By.id("idValue"),#id
By.cssSelector("input[id='idValue']") ,[属性=’属性值‘]
6.By.linkText,根据元素的超链接的文本值来获取元素
7.By.partialLinkText,根据元素的超链接的部分文本值来获取元素
xpath定位:
1..By.xpath("//*[@属性=’属性值‘]") ,后面可接相对路径,可加索引获取唯一元素定位
例如://*[@id='idValue '] ,
//*[@class='classValue'] ,
2./html/body/main/div[1]/header/div[1]/div[1]/div[2]/a/img,绝对路径
做web测试时,心得
1.一般用xpath相对路径,可以获取元素唯一定位。
//*[@class='header-mobile csa']/div/div[2]/div[3]/a/img
2.对页面元素进行点击等操作时,确保页面元素加载完全,可以加延时等待获取元素,保证点击事件可以正常执行。
wait.until(new ExpectedCondition<WebElement>()
3.点击元素后有页面切换的操作时,可以先把元素滑动到页面可见视线中,在进行点击操作。
((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView();", element);