2026/4/22 1:42:41
网站建设
项目流程
建设银行网站能不能注销卡,品牌官方网站建设,外贸网站建设青岛,中国著名摄影网站一、环境搭建#xff08;5分钟完成#xff09;1. 安装依赖bash# 安装Selenium库
pip install selenium 下载浏览器驱动#xff08;需与浏览器版本匹配#xff09;#xff1a;Chrome驱动#xff1a;https://sites.google.com/chromium.org/driver/下载后放入Python安装…一、环境搭建5分钟完成1. 安装依赖bash # 安装Selenium库 pip install selenium下载浏览器驱动需与浏览器版本匹配Chrome驱动https://sites.google.com/chromium.org/driver/下载后放入Python安装目录或添加到系统环境变量。2. 验证安装python from selenium import webdriver # 启动Chrome浏览器 driver webdriver.Chrome() # 打开百度首页 driver.get(https://www.baidu.com) # 关闭浏览器 driver.quit()运行后若自动打开Chrome并访问百度说明环境配置成功。---二、核心操作模拟用户行为1. 元素定位8种常用方法方法场景示例代码示例find_element_by_id定位有id属性的元素如搜索框driver.find_element_by_id(kw)find_element_by_xpath复杂页面定位如动态加载元素driver.find_element_by_xpath(//input[nameusername])find_element_by_link_text定位超链接文本driver.find_element_by_link_text(登录)2. 模拟用户操作输入文本send_keys()python # 在百度搜索框输入“selenium” driver.find_element_by_id(kw).send_keys(selenium)点击按钮click()python # 点击百度搜索按钮 driver.find_element_by_id(su).click()键盘操作需导入Keyspython from selenium.webdriver.common.keys import Keys # 输入后按回车键替代点击按钮 driver.find_element_by_id(kw).send_keys(Keys.ENTER)鼠标悬停需ActionChainspython from selenium.webdriver.common.action_chains import ActionChains # 悬停到“设置”菜单 setting driver.find_element_by_link_text(设置) ActionChains(driver).move_to_element(setting).perform()---三、实战案例模拟电商网站登录1. 测试用例目标自动输入用户名/密码点击登录验证是否跳转至首页。前置条件准备测试账号testuser/testpwd123。2. 代码实现python from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC # 1. 启动浏览器并打开登录页 driver webdriver.Chrome() driver.get(https://www.example.com/login) # 替换为实际登录页URL driver.maximize_window() # 最大化窗口 # 2. 输入账号密码显式等待元素加载避免time.sleep WebDriverWait(driver, 10).until( EC.presence_of_element_located((id, username)) ).send_keys(test_user) driver.find_element_by_id(password).send_keys(test_pwd123) # 3. 点击登录按钮 driver.find_element_by_xpath(//button[typesubmit]).click() # 4. 验证登录结果断言URL是否包含“home” WebDriverWait(driver, 10).until( EC.url_contains(home) ) assert home in driver.current_url, 登录失败未跳转至首页 # 5. 关闭浏览器 driver.quit()---四、提升效率避免重复劳动1. 显式等待替代time.sleeppython # 等待10秒直到“首页欢迎语”出现 welcome_text WebDriverWait(driver, 10).until( EC.presence_of_element_located((id, welcome)) ) assert 欢迎回来 in welcome_text.text2. 封装成测试类便于维护python import unittest class TestLogin(unittest.TestCase): def setUp(self): self.driver webdriver.Chrome() def test_login_success(self): self.driver.get(https://www.example.com/login) # 登录逻辑... def tearDown(self): self.driver.quit() if __name__ __main__: unittest.main()3. 容器化部署确保环境一致性通过智优达Docker容器化部署指南将Selenium测试环境打包为Docker镜像避免“本地能跑服务器跑不了”的问题dockerfile # Dockerfile示例 FROM python:3.9 RUN pip install selenium COPY . /app CMD [python, /app/test_login.py]