Selenium库调用Edge浏览器总是打开一个全新的窗口,怎么调用本机浏览器及数据
时间: 2024-12-13 13:27:35 浏览: 16
Selenium库主要用于自动化Web浏览器操作,当你遇到在Edge浏览器中总是新开窗口的问题,通常是因为Selenium默认的行为是启动一个新的浏览器实例。如果你想让它利用本机已安装的Edge浏览器并保持会话状态,可以按照以下步骤设置:
1. **选择正确的WebDriver**: 首先,你需要下载适用于Edge浏览器的WebDriver,即Microsoft Edge Driver。可以从Selenium官方GitHub仓库下载:https://github.com/microsoft/webdriver 下载对应版本的edgedriver.exe。
2. **指定浏览器路径**:
在Python中,确保将WebDriver的路径添加到环境变量`webdriver.edge.driver`或者通过`DesiredCapabilities.EDGE`字典指定驱动路径,例如:
```python
from selenium import webdriver
# 使用绝对路径
options = webdriver.ChromeOptions()
options.binary_location = "path_to_your_edge_driver"
driver = webdriver.Edge(options=options)
# 或者使用相对路径
options.add_argument('--edge-path=C:/Program Files/Microsoft Edge/Application/msedge.exe')
driver.get("http://example.com")
```
3. **保持会话**:
要保持Selenium与浏览器的会话,你应该关闭之前的所有会话再开启新的,或者使用`switch_to.window`方法切换到已存在的标签页:
```python
driver.close() # 如果之前有窗口,关闭它
driver.switch_to_window(driver.current_window_handle) # 切换回当前窗口
```
4. **处理cookies和session数据**:
为了保留登录信息等数据,你可以保存和恢复cookie,也可以使用SessionStorage API。比如,在页面加载后获取和保存cookies:
```python
cookies = driver.get_cookies()
driver.quit()
# 然后在下次打开时恢复
driver = webdriver.Edge(options=options)
for cookie in cookies:
driver.add_cookie(cookie)
driver.get("http://example.com")
```
阅读全文