JS的操作

JS就是JavaScript,运行在前端浏览器的脚本。操作浏览器的时候,可能会遇到一些情况,WebDriver操作不到或者无法达到效果,这个时候,就需要通过JS的一些操作实现的想要效果。

例如浏览器的滚动条,当web driver遇到这样的问题之后,其实是解决不了的,这时候可以考虑借用JavaScript来完成滚动条滚动。WebDriver虽然没有提供操作滚动条的接口,但却提供了操作JavaScript的接口,同样能够达到效果。

WebDriver关于JavaScript执行的API函数:

# 执行js脚本
# script,一段JavaScript脚本,字符串格式
# args,传入的参数集
execute_script(self, script, args)

IDE关于该方法的提示:

来看个具体的例子,比如打开百度搜索,如果直接打开后,可能无法出现滚动条,为了能够出现滚动条,我们制造一个滚动条,这就需要借助set_window_size方法,让浏览器变小,滚动条就出现了。效果:

右边、下边都已经出现了滚动条。

用JavaScript操作滚动条:

from selenium import webdriver
from time import sleep
driver = webdriver.Firefox()
driver.get("https://www.baidu.com")

# 设置窗口大小,让窗口出现滚动条
driver.set_window_size(800, 600)
driver.find_element_by_xpath("//input[@id='kw']").send_keys("Bela")
driver.find_element_by_xpath("//input[@id='su']").click()
sleep(3)

# 窗口滚动到新的位置,200对应水平位置,500对应垂直位置,单位像素
js = "window.scrollTo(200, 500)"
driver.execute_script(js)

运行代码,效果:

IT赶路人

专注IT知识分享