本文介绍如何利用Selenium中方法,在不同iframe中切换,和如何通过Selenium获取页面元素的某一个属性。
切换iframe
问题:有时候我们发现元素定位没问题,在测试回放的过程,发现就是找不到元素报错。
由于没有找到合适的iframe网站,这里不好用代码举例,简单文字加图片来介绍。
自己写了一个网页,利用iframe网页框架,把网页分成上下两个不同iframe控制的页面,把下面html代码保存到一个记事本,然后修改名称为iframe-demo.html
用本地浏览器打开如下图:
用firepath来获得百度文本输入框的XPath截图
看到了红圈位置不是显示Top Window,说明你要定位的目标元素在一个iframe里,如果要操作这个元素,首先需要从默认的Top Window,利用switch_to.frame('iframeid')方法来切换到具体的iframe,然后才能去操作目标元素。
正常百度页面,文本输入框截图
方法介绍:
获取属性
一个元素可能有多个属性,例如 class, id, name, text, href, vale等等。这里我们举例一个爬虫中经常需要处理的链接问题:找出当前页面所有的超链接。
已百度首页为例,打印所有包含href的元素的链接。
相关脚本代码如下:
这里只是找元素的href属性,如果你需要其它属性,例如你需要查看页面所有元素具有id值的话,你可以这样写