You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无需pytest调用SeleniumBase BaseCase类遇问题求助

问题解决:不依赖pytest使用SeleniumBase BaseCase + Ubuntu环境运行异常处理

一、不通过pytest直接使用BaseCase类的方法

要在普通Python脚本中继承BaseCase并调用其扩展方法(如choose_file),必须手动触发BaseCase的setUp()方法(pytest会自动执行该初始化步骤,手动调用时需显式执行),同时在操作结束后调用tearDown()清理资源。示例代码如下:

from seleniumbase import BaseCase

class CustomTest(BaseCase):
    def __init__(self):
        super().__init__()
        # 手动初始化SeleniumBase核心变量
        self.setUp()

    def execute_workflow(self):
        # 调用BaseCase的各类方法
        self.open("https://seleniumbase.io/simple/login")
        self.type("#username", "demo_user")
        self.type("#password", "secret_pass")
        self.click('a:contains("Sign in")')
        # 示例:使用choose_file上传文件
        self.choose_file("#file_input", "/path/to/your/local/file.pdf")
        # 其他业务操作...
        self.click_link("Sign out")
        self.assert_text("signed out", "#top_message")

        # 手动清理浏览器等资源
        self.tearDown()

if __name__ == "__main__":
    test_instance = CustomTest()
    test_instance.execute_workflow()

二、Ubuntu 22.04下SB上下文管理器运行异常的解决步骤

从日志来看,ChromeDriver已成功匹配版本,但脚本未继续执行,大概率是系统依赖缺失或显示环境问题,按以下步骤排查:

1. 安装Chrome必需的系统依赖

Ubuntu下运行Chrome需要基础库支持,执行以下命令安装:

sudo apt update
sudo apt install -y libnss3 libxss1 libappindicator3-1 libasound2 libatk-bridge2.0-0 libgtk-3-0

2. 处理无桌面环境的显示问题

如果你的Ubuntu环境没有图形界面,需要通过xvfb模拟显示环境:

  • 先安装xvfb:
sudo apt install xvfb
  • 用xvfb包裹脚本运行:
xvfb-run python3 your_script.py

或者直接在代码中启用无头模式(无需图形界面):

with SB(headless=True) as sb:
    sb.open("https://seleniumbase.io/simple/login")
    # 后续操作...

3. 检查ChromeDriver权限

确保chromedriver拥有可执行权限:

chmod +x ~/mysimplecode/.venv/lib/python3.10/site-packages/seleniumbase/drivers/chromedriver

4. 升级SeleniumBase到最新版本

版本兼容问题也可能导致异常,执行升级命令:

pip install --upgrade seleniumbase

内容的提问来源于stack exchange,提问作者TomCat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 18:01:19