虽然 WebDriver 提供了操作浏览器的前进和后退方法,但对于浏览器滚动条并没有提供相应的操作方法。在这种情况下,就可以借助JavaScript来控制浏览器的滚动条。WebDriver提供了execute_script()方法来执行JavaScript代码。
用于调整浏览器滚动条位置的 JavaScript 代码如下:
<!-- window.scrollTo(左边距,上边距); --> window.scrollTo(0,450);
window.scrollTo() 方法用于设置浏览器窗口滚动条的水平和垂直位置。方法的第一个参数表示水平的左间距,第二个参数表示垂直的上边距。其代码如下:
from selenium import webdriver from time import sleep # 访问百度 driver=webdriver.Firefox() driver.get("http://www.baidu.com") # 设置浏览器窗口大小 driver.set_window_size(500, 500) # 搜索 driver.find_element_by_id("kw").send_keys("selenium") driver.find_element_by_id("su").click() sleep(2) # 通过javascript设置浏览器窗口的滚动条位置 js="window.scrollTo(100,450);" driver.execute_script(js) sleep(3) driver.quit()
通过浏览器打开百度进行搜索,并且提前通过 set_window_size() 方法将浏览器窗口设置为固定宽高显示,目的是让窗口出现水平和垂直滚动条。然后通过 execute_script() 方法执行 JavaScripts 代码来移动滚动条的位置。
先学好js……