Python中如何使用Selenium的PhantomJS驱动切换浏览器标签页
我知道 Chrome 下可以切换,但是想知道 PhantomJS 下怎么切换,麻烦熟悉的大佬告诉下,3Q
Python中如何使用Selenium的PhantomJS驱动切换浏览器标签页
2 回复
在Python的Selenium中,PhantomJS是一个无头浏览器,虽然它本身不支持多标签页,但我们可以通过模拟浏览器行为来切换窗口句柄。下面是一个完整的示例代码:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
# 启动PhantomJS驱动
driver = webdriver.PhantomJS()
driver.get("https://www.baidu.com")
# 获取当前窗口句柄
current_handle = driver.current_window_handle
# 通过JavaScript打开新标签页
driver.execute_script("window.open('https://www.google.com')")
# 获取所有窗口句柄
all_handles = driver.window_handles
# 切换到新标签页
for handle in all_handles:
if handle != current_handle:
driver.switch_to.window(handle)
break
# 在新标签页中操作
print("当前页面标题:", driver.title)
time.sleep(2)
# 切换回原标签页
driver.switch_to.window(current_handle)
print("切换回原页面标题:", driver.title)
# 关闭浏览器
driver.quit()
关键点:
- 使用
driver.current_window_handle获取当前窗口句柄 - 通过
driver.execute_script("window.open()")打开新标签页 - 使用
driver.window_handles获取所有窗口句柄列表 - 通过
driver.switch_to.window(handle)切换到指定标签页
注意:PhantomJS已经停止维护,建议考虑使用Chrome或Firefox的无头模式替代。
总结:用窗口句柄管理标签页切换。

