软件自动化测试过程
软件自动化测试的基本对象即是页面元素,那么在进行自动化测试的第一步也就是定位页面元素,不管是Web应用、移动端应用还是桌面GUI程序应用,它们的原理都是一样:通过元素的各种已有属性(比如id、class、name、text、value、desc、xpath、index等)唯一的确定元素。
软件自动化测试的过程:
WebDriver元素定位策略
这里说明下当前Web自动化测试的主流框架WebDriver的元素定位策略,相比web端,移动端和桌面GUI程序的元素定位要相对简单很多,移动端的关键控件基本都是有resource-id的,桌面GUI程序根据class和index就基本搞定大部分元素定位。
WebDriver中最直接的定位元素方式是用id 和 name,可是有时候你会发现很多标签中并没有id和name属性,那该如何定位?
By.id()
例如:<input id="accountId" type="text" name="account" value=""/>
通过id查找:WebElement element = driver.findElement(By.id("accountId "));
By.name()
通过name查找:WebElement element = driver.findElement(By.name(" account "));
By.xpath()
通过xpath查找:WebElement element = driver.findElement(By.xpath("//input[@id= "accountId "]"));
By.className()
例如:<p class="status">已上架</p>
通过className查找:WebElement element = driver.findElement(By.className("status");
By.cssSelector()
例如:<a class="btn new_promote " href="javascript:void(0);">新建推广</a>
通过cssSelector查找:WebElement element = driver.findElement(By.cssSelector("btn.new_promote");
By.linkText()
例如:<a class="modify" href="javascript:void(0);">编辑</a>
通过链接上的文字信息来定位元素:WebElement element = driver.findElement(By.linkText("编辑"));
By.partialLinkText()
通过部分链接文字进行匹配:WebElement element = driver.findElement(By.partialLinkText("推广"));
这可能会匹配到多个元素,默认会返回第一个匹配的元素。
By.tagName()
通过元素的标签名称来查找:List<WebElement> elements= driver.findElements(By.tagName("button");
<后续再写一篇专门讲解Xpath的元素定位>
PS: 更多原创技术好文和资料,请关注下方公众号:“测试开发栈”公众号是由具有多年测试、开发经验的老兵们共同管理和运营,旨在分享原创互联网软件测试、开发相关技术。
软件测试开发合并必将是趋势,不懂开发的测试、不懂测试的开发都将可能被逐渐替代,因此前瞻的技术储备和知识积累是我们以后在职场和行业脱颖而出的法宝,期望我们的经验和技术分享能让你每天都成长和进步,早日成为测试开发栈上的技术大牛~~同时也欢迎加入我们的QQ群交流和提问:427020613