这段时间使用selenium webdriver做UI自动化,积累了一些心得,汇总了常用的命令。
1、查找某个元素是否存在: bot.existElement(By.xpath("//a[contains(text(),'宁波测试商品002')]"))
2、根据xpath断言某个元素是否存在: Assert.assertEquals(bot.findElements(By.xpath("//div[@class='g-group-name']/span")).get(0).getText(),"H1237","合伙人小队页面错误!"); //index从0开始
3、根据classname断言某个元素是否存在: Assert.assertEquals(bot.findElements(By.className("col-name")).get(1).getText(),"赵利群","设置默认地址失败!");
4、尝试多种方法定位元素:By.name()、By.id()、By.className()、By.linkText()、By.xpath()、By.tagName()、By.cssSelector()
5、如果还是定位不到,可能是因为该元素存在iframe里,需要先定位iframe再定位元素:
bot.typeInFrame(By.id("yueForm"),By.xpath("//input[@id='OTPCtl2']"),wybpassword);
bot.clickInFrame(By.id("yueForm"),By.id("bankCardSumbit"));
6、type失败时,可尝试先使用click点击输入框,然后使用type:
bot.click(By.xpath("id('J_streetBox')/textarea"));//点击输入框
bot.type(By.name("street"), newaddress);//修改地址
7、切换窗口:bot.changeWindow(1);//index从0开始
8、比较跳转后url是否正确:bot.compareUrl(1,"http://www.kaola.com/cart.html?from=Repeat_purchase")
9、有时用seleniumIDE可以实现replay操作,但是webdriver不行,增加等待时间或许可以解决问题:bot.wait(5);//0.1秒为单位