鼠标悬停时,使用xpath定位页面按钮元素

【开发环境&工具】

selenium-server-standalone-2.52.0.jar, JDK1.8, eclipse, Firefox45.2.0

【需求背景】

将鼠标移动到“相册”图表之上,点击图表上出现的删除按钮。



【遇到的问题】

1)将鼠标移动到相册图标上,页面出现删除按钮;

2)右击删除按钮,使用FirePath查看页面元素,如下图:


3)定位并点击元素代码:

		//	定位到删除按钮并点击
		driver.findElement(By.xpath("//div[@class='item'][1]//a[@title='删除']")).click();

结果运行时提示定位不到页面元素。

【分析】

重新分析并检查页面元素,发现鼠标移动到相册上时,上一级的div class name变(如下图),而且,必须是查看HTML的时候,才会动态显示出来,使用firepath查看的时候,页面不是动态显示的,所以看不出来鼠标悬停时,页面元素参数的变化(请对比上图一起看),如下:



改代码,更新新的div class name 如下:

		//	定位到删除按钮并点击
		driver.findElement(By.xpath("//div[@class='item on'][1]//a[@title='删除']")).click();

之后运行成功。


【总结】

在遇到定位悬停图标的页面元素时,或者需要移动鼠标来获取的页面元素时,需要注意页面参数的变化:鼠标悬停和不悬停时页面元素的参数是不一致的,这时候需要通过查看HTML页面元素来确定正确的参数值。

小Tips:可以通过移动鼠标来查看悬停时和不悬停时页面参数的变化情况,使用firebug查看页面元素时,这部分内容会高亮显示(如上图),所以说还是比较容易发现区别的。


你可能感兴趣的:(测试,selenium,xpath定位,悬停)