到目前为止也只做了几个月测试,但是借助公司原有的框架,感觉还是学到很多东西,有必要整理记录。
1.普通的html标签: 通过id, xpath即可得到。
2.伪元素:即紧跟在标签之后的:before, :after 等元素,有时候某些验证点在这些伪元素的css属性当中,通过xpath获取不到这些伪元素, css selector 也没有找到合适的方法可以得到。因此伪元素是通过执行JavaScript语句得到的,代码如下:
String script1 = "return window.getComputedStyle(document.querySelectorAll('.sizing-tool .tab-content .checkbox-group')[" + i + "],':before').getPropertyValue('background-color')";
JavascriptExecutor js = (JavascriptExecutor) driver;
String content = (String) js.executeScript(script1);
这句代码的解析: String script1 = "return window.getComputedStyle(document.querySelectorAll('css selector')[index],':before/:after').getPropertyValue('css属性名')";因为document.querySelectorAll得到的是一个数组,所以需要index指明你想得到数组里的第几个值。
3.有的网页,一个页面会有多个Tab,点击对应的tab,会到指定的div。并且这些tab对应的每个div的class和结构都是一样的,通过xpath是得到一个List,而不是那个被激活div下我们需要的那个元素。这个时候其实被我们点击的那个tab的class一般都会有 active 显示,我们可以通过这个来区别其他tab下的内容。如果没有 active的话,就是开发的锅了。。。因为我遇到过这个坑,是带我的小姐姐教的,所以提及给自己一个提醒。其实自动化测试,一些Popup window 的出现和消失都是通过class来控制的,所以当出现某个东西比较难找的时候,点击该元素,注意观察浏览器F12下代码的变化就能看的出来了。
4.现在网页的结构一般都会有个Header,Header中会有多个一级链接,每个一级链接下还会有多个链接,并且这些linkText基本都是一两个单词的那种,如果每个都用xpath去取的话就会很烦,所以呢,噔噔噔噔噔,就用一个封装的方法通过传入链接的text就可以了。
String selectorFormat="//div[@class='selector-container']//div[@class='title-btn']//span[contains(text(),'%s')]";
public WebElement linkTextOfSelector(String linkName) {
return find(selectorFormat, linkName);
}
网友评论