Selenium 设置authorization和token
时间: 2024-12-14 10:19:25 浏览: 11
Selenium 是一个自动化测试框架,主要用于Web浏览器的自动化操作。当你需要模拟用户登录并验证授权(通常涉及cookies、session tokens或其他身份验证机制)时,可以采用以下步骤设置 authorization 和 token:
1. **打开网页**:
首先,通过 `webdriver` 打开包含登录表单的网页。
```python
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://example.com/login')
```
2. **填充登录信息**:
使用 `find_element_by_name` 或其他定位策略找到输入框,并填写用户名和密码。
```python
username_field = driver.find_element_by_name('username')
password_field = driver.find_element_by_name('password')
username_field.send_keys('your_username')
password_field.send_keys('your_password')
```
3. **发送登录请求**:
通常有 "登录" 或 "Submit" 按钮,点击它触发登录动作。
```python
login_button = driver.find_element_by_xpath('//button[@type="submit"]')
login_button.click()
```
4. **处理验证码或权限验证**:
如果有验证码或动态加载的tokens,可能需要额外的处理,如OCR识别验证码或者等待页面加载完成。
5. **保存 authorization 和 token**:
当成功登录后,Selenium 无法直接保存 cookies 或 session tokens,因为它是基于浏览器环境的。你需要查看网络开发者工具 (Chrome DevTools 或 Firefox Developer Tools) 的 Cookies 或 Headers 部分,获取到实际的 `Authorization` 头(如 `Bearer <token>`)或相关cookie。
6. **模拟 Authorization**:
在后续对受保护的API或功能的测试中,你可以使用第三方库如 `requests` 或 `selenium.webdriver.remote.webdriver` 的 `execute_script` 方法将获取到的 `Authorization` 头添加到请求中。
```python
# 示例使用 requests:
import requests
headers = {
'Authorization': f'Bearer {get_token_from_cookies()}'
}
response = requests.get('https://api.example.com/private', headers=headers)
```
7. **断言或进一步操作**:
确认登录后的响应是否正常,然后继续执行剩下的测试步骤。
阅读全文