Selenium笔记(7)常见的坑
###1.用Xpath查找数据时无法直接获取节点属性
通常在我们使用xpath
时,可以使用@class
的方式直接获取节点的属性,如下所示:
page.xpath('//div/a/@class')
但在Selenium中不支持这种用法,只能在找到节点后,使用get_attribute(name)
方法来获取属性:
page.xpath('//div/a').get_attribute('class')
同样的,Selenium同样不支持Xpath中的string(),text()这类的方法,只能获取元素节点。
–
2.使用了WebDriverWait
以后仍然无法找到元素
有很多时候,一个简单的元素,明明也加了显式等待,但就是找不到,代码在仔细查看过后也没有问题后,多半是以下这几种情况:
- 由于分辨率设置的原因,查找的元素当前是不可见的。
- 某些页面的元素是需要向下滚动页面才会加载的。
- 由于某些其他元素的短暂遮挡,所以无法定位到。
2.1. 分辨率原因
- 这时候应该设置好分辨率,使当前元素能够显示到页面中。
2.2. 需要滚动页面
有些页面为了性能的考虑,页面下方不在当前屏幕中的元素是不会加载的,只有当页面向下滚动时才会继续加载。
而selenium本