1.元素点击偶尔失效
有弹窗广告遮挡——窗口最大化 driver.manage().window().maximize();
元素,页面加载过慢——设置等待时间(隐式,显式)
2.元素拖拽方法:dragAndDropToObject(toBeDraggedLocator, dragDestinationLocator);在一些版本的Firefox浏览器上失效
通过查阅论坛,发现这个问题很普遍,可以绕过这条语句,使用别的表达方法:
方法一
Actions act=new Actions(driver);
act.clickAndHold(source).build().perform();
act.moveToElement(target).build().perform();
act.release(target).build().perform();
方法二
Actions builder=new Actions(driver);
builder.moveToElement(draggable).clickAndHold();
builder.moveToElement(target).click().perform();
3.Xpath到底怎么用:Xpath并不是元素定位的首选,如果能够通过元素ID,Name,Class,Linktext,Tag直接定位,就不要用Xpath.
甚至有人说,宁可找开发给元素新增一个ID或Name,也不要用Xpath。
我在写作业的时候也发现,Xpath非常不好用,对于新手来说,复杂的嵌套和特殊的语法让长长的Xpath表达式令人头疼。
随着之后增加了新需求
测试点,元素的Xpath还会发生变化,这时候,还要回过头把更新的Xpath找出来替换进去,很浪费时间
而且,很多
浏览器和测试环境对Xpath的调用不是很稳定,所以在定位时会非常麻烦。
但Xpath也不是一无是处,因为它有这清晰的逻辑递归结构,在特殊场合下,也会发挥很好的作用
4.用eclipse调试WEB自动化脚本时,需要注意把Firefox浏览器安装在默认目录下,否则脚本无法运行。
5.元素定位查找有两种写法:
写法一:适用于,对定位后的元素有较多,较复杂的操作。
WebElement albumElement=driver.findElement(By.className("name"));
albumElement.click();
写法二:适用于,仅仅是找到某元素,然后对其进行简单的,一到两次的操作。
WebElement albumElement=driver.findElement(By.className("name")).click();