1.xpath验证时,chrome的插件xpath helper还不错:左边输入,右边输出
2.xpath定位时,有的需要自己手写,常见的如下:
xpath = "//*[text()='请选择疗程卡项目']/following-sibling::div[2]/button[1]"
xpath = "//span[contains(@class,'highlight totalMoney')]"
xpath = "//*[@id='code_view_product' and @class='code_view out']//div[text()='非卖品']"
xpath = "//*[text() = '项目三项']/parent::*/following-sibling::div[5]"
xpath = "//td[text()='管理员']//preceding-sibling::td[2]/input"
3.有些iframe用xpath helper不能直接在页面上验证,可以浏览器打开拼凑iframe指向的链接,再用工具验证xpath的正确性
4.注意下,几个显示等待的使用场景,如页面跳转时,判断title内容等
5.有的操作,只会导致页面标签的内容的改变:此时的等待可以考虑做自定义显示等待,或者定义方法等待
6.有时候,点击某个按钮或元素没有效果,也许是事件没有绑定在这个标签上,可以向上向下查找其他标签,chrome控制台尝试点击标签,可以快速验证:$("#id").click();
7.碰到个switch()到新窗口后,无法取出页面元素的问题。大概说下解决问题步骤。
a.之前的元素定位用的文本内容,改成dom结构定位
b.eclipse的调试模式,查看getWindowHandles的长度是否与窗口个数一致
c.若窗口数量一致,判断switchTo是否成功,现阶段,我用的方法:首先改页面的title,再去driver.getTitle,判断此时哪个窗口有效
d.若数量不一致,考虑是否加个等待,等窗口打开后,再去switchTo