Python+Selenium实现浏览器的控制操作
本文详解Python Selenium对浏览器的核心控制操作。涵盖通过ChromeOptions设置无头模式等参数、调整窗口大小与获取页面信息、使用forward/back实现前进后退、利用execute_script执行JS控制滚动条,以及通过window_handles和switch_to.handle进行多窗口切换的完整代码示例与注意事项。
浏览器参数设置
在初始化WebDriver实例时,可以通过配置chrome_options参数来设定浏览器行为。该参数需使用Options类进行实例化。具体代码实现如下所示:
from selenium import webdriver
#导入Options类
from selenium.webdriver.chrome.options import Options
#实例化Options
chrome_options = Options()
# 设置浏览器参数
# --headless不显示浏览器启动及执行过程
chrome_options.add_argument('--headless')
# 启动浏览器并设置chrom_options
driver = webdriver.Chrome(chrome_options = chrome_options)
浏览器窗口大小设置
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
# 设置浏览器最大化
driver.maximize_window()
# 设置浏览器最小化
driver.minimize_window()
# 设置浏览器宽高
width = 100
high = 100
driver.set_window_size(width, high)
获取浏览器内容
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
# 获取网页title
driver.title
# 获取网页的HTML代码
driver.page_source
控制浏览器前进/后退
#浏览器的前进
browser.forward()
#浏览器的后退
browser.back()
以下代码演示了完整的导航流程:
import time
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
driver.find_element_by_id('kw').send_keys('selenium')
driver.find_element_by_id('su').click()
time.sleep(3)
driver.find_element_by_id('kw').clear()
driver.find_element_by_id('kw').send_keys('python')
driver.find_element_by_id('su').click()
time.sleep(3)
driver.back()#回到selenium
time.sleep(3)
driver.forward()#前进到python
time.sleep(3)
控制浏览器滚动条
控制浏览器滚动条位置需借助JavaScript脚本执行。
#将浏览器滚动条滑到最顶端
document.documentElement.scrollTop=0
#将浏览器滚动条滑到最底端
document.documentElement.scrollTop=10000
#将浏览器滚动条滑到最底端, 示例
js="var q=document.documentElement.scrollTop=10000"
driver.execute_script(js)
其中,execute_script(script, *args)方法用于在当前窗口或框架中同步执行指定的JavaScript代码。
具体应用示例如下:
import time
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
driver.find_element_by_id('kw').send_keys('selenium')
driver.find_element_by_id('su').click()
time.sleep(3)
# 滚动条滚到底端
js='var q=document.documentElement.scrollTop=10000'
driver.execute_script(js)
time.sleep(4)
# 滚动条滚到顶端
js='var q=document.documentElement.scrollTop=0'
driver.execute_script(js)
time.sleep(4)
浏览器多窗口切换
在单一浏览器进程中,可以通过句柄管理在不同窗口间进行切换操作。
# 打开新的窗口
js ='window.open(url)'
driver.execute_script(js)
# 获取当前窗口信息
current_window = driver.current_window_handle
# 获取当前浏览器全部窗口信息
handles = driver.window_handles
# 进行窗口切换
driver.switch_to.window(handles[0])
多窗口切换的代码示例如下:
import time
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
time.sleep(5)
# 打开新的窗口
js ='window.open("https://www.sogou.com/")'
driver.execute_script(js)
# 获取当前窗口信息
current_window = driver.current_window_handle
# 获取当前浏览器全部窗口信息
handles = driver.window_handles
# 进行窗口切换
time.sleep(5)
driver.switch_to.window(handles[0])至此,关于Python结合Selenium实现浏览器控制的介绍完毕。如需了解更多相关技术内容,建议查阅本站过往文章或继续浏览后续章节,感谢支持!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













