爬虫学习日记(十)selenium frame的切换

603 阅读1分钟

旧的HDMU被block,换成官网重新写一个新的,换成官网以后可以发现整个爬虫的效率都变慢很多。毕竟是因为是模拟浏览器,浏览器打开官网要加载许多用不上的东西,就导致整个加载速度很慢,可以了解很多爬虫可能只是访问原先网站一个必要的iframe或则其他的,可以大大加速爬虫的效率。

在用selenium爬取官网中的信息时,在进行location定位的时候一直出现timeout的问题,可以确定的是xpath的定位是绝对没有错的。

后来发现是在selenium中,要定位frame中的元素的话,是要用方法跳转到frame中进行跳转才可以进行定位。

如图示:

要获取到1号frame中的元素,必须用WebDriver中的.driver.switchTo().frame(By location)进行切换,必须要注意的是,切换到frame中就只能对frame中的元素进行操作,如sendkey,click,进行wait判断时如果判断的是frame外的元素的话,也会报timeout的错误。

如果已经进到frame中,想要定位frame外的元素,要用this.driver.switchTo().parentFrame()切换到frame外。