以下是一个基于 Python 和 Selenium 的完整网页自动化脚本工具案例,用于模拟用户登录一个示例网站、获取用户信息并退出登录。此脚本适用于一个假设的网站(由于实际网站的结构和元素可能不同,实际使用时需要根据目标网站进行调整)。
脚本功能
-
自动打开浏览器。
-
进入指定的登录页面。
-
输入预设的用户名和密码。
-
点击登录按钮。
-
登录成功后获取用户信息并打印。
-
点击退出按钮并退出登录。
-
关闭浏览器。
脚本代码
# 导入必要的库
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException
import time
# 配置
LOGIN_URL = 'https://example.com/login' # 示例登录页面 URL
HOME_URL = 'https://example.com/home' # 示例主页 URL
USERNAME = 'your_username' # 示例用户名
PASSWORD = 'your_password' # 示例密码
DRIVER_PATH = r'C:\path\to\chromedriver.exe' # 示例 ChromeDriver 路径
# 初始化 WebDriver
driver = webdriver.Chrome(executable_path=DRIVER_PATH)
# 打开登录页面
driver.get(LOGIN_URL)
# 等待页面加载
try:
WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.NAME, 'username'))
)
print("页面加载成功")
except TimeoutException:
print("页面加载超时")
driver.quit()
exit()
# 输入用户名和密码
username_input = driver.find_element(By.NAME, 'username')
password_input = driver.find_element(By.NAME, 'password')
username_input.send_keys(USERNAME)
password_input.send_keys(PASSWORD)
print("输入用户名和密码成功")
# 点击登录按钮
login_button = driver.find_element(By.ID, 'login-button')
login_button.click()
print("点击登录按钮成功")
# 等待登录成功
try:
WebDriverWait(driver, 10).until(
EC.url_to_be(HOME_URL)
)
print("登录成功")
except TimeoutException:
print("登录失败")
driver.quit()
exit()
# 获取用户信息
try:
user_info = driver.find_element(By.CLASS_NAME, 'user-info').text
print("获取用户信息成功:", user_info)
except Exception as e:
print("获取用户信息失败:", str(e))
# 点击退出按钮
try:
logout_button = driver.find_element(By.ID, 'logout-button')
logout_button.click()
print("点击退出按钮成功")
except Exception as e:
print("点击退出按钮失败:", str(e))
# 等待退出成功
try:
WebDriverWait(driver, 10).until(
EC.url_to_be(LOGIN_URL)
)
print("退出成功")
except TimeoutException:
print("退出失败")
# 关闭浏览器
driver.quit()
注意事项
-
确保已安装适用于您浏览器的驱动程序,例如 ChromeDriver,并正确设置其路径。
-
在实际应用中,您需要根据目标网站的结构和元素修改选择器(如 By.NAME、By.ID 等)和相应的值。
-
此脚本仅为示例,实际使用时需要考虑更复杂的场景,例如异常处理、验证码处理、动态元素加载等。
-
遵守目标网站的使用条款和法律法规,不要用于非法或未经授权的操作。