在 python selenium 中获取 INTERNALERROR

问题描述 投票:0回答:1

请参考我之前的帖子这里

我正在使用 Python selenium 库来自动化 UI 应用程序。它工作正常,但有时我会看到 INTERNALERROR 错误并且一切都会停止。这是我的代码:

@pytest.fixture(scope='class')
def setup(request):
  try:
    """
    Retrieve secrets from secrets manager
    """
    secret_name = "my-secrets"
    secret_value = get_secret(secret_name)
    print(secret_value)
    secret_dict = json.loads(secret_value)
    UserName6 = secret_dict.get('UAT_USER_NAME_6')
    Password = secret_dict.get('UAT_PASSWORD')
    Client = secret_dict.get('UAT_CLIENT1')
    Uat_Url = secret_dict.get('BASE_URL_UAT')
    TestData_common.user_name6 = UserName6
    TestData_common.password = Password
    TestData_common.client = Client
    TestData_common.Url = Uat_Url
    options = webdriver.ChromeOptions()
    options.add_argument('--no-sandbox')
    options.add_argument("--window-size=1920,1080")
    options.add_argument("--start-maximized")
    options.add_argument("--incognito")
    options.add_argument('--headless')
    driver = webdriver.Chrome(options=options)
    request.cls.driver = driver
    driver.delete_all_cookies()
    driver.get(TestData_common.Url)
    yield
    driver.quit()
except WebDriverException as e:
    print('UAT seems to be down...> ', e)

@pytest.mark.usefixtures("setup")
class Test_cpty:
  def test_001_login(self):
    assert TestData_common.URL_FOUND, " UAT seems to be down..."
    print('Successfully clicked AGREE button')
    self.loginPage = LoginPage(self.driver)
    self.loginPage.do_click_agree_button()
    self.driver.maximize_window()
    time.sleep(2)

当我运行脚本时,有时会出错为 INTERNALERROR。请参阅下面的堆栈跟踪。

INTERNALERROR>   File "C:\Users\myuser\repo\cfn-batch-APP\venv\Lib\site- 
packages\_pytest\main.py", line 273, in wrap_session
INTERNALERROR>     session.exitstatus = doit(config, session) or 0
INTERNALERROR>                          ^^^^^^^^^^^^^^^^^^^^^
INTERNALERROR>   File "C:\Users\myuser\repo\cfn-batch-APP\venv\Lib\site- 
packages\_pytest\main.py", line 327, in _main
INTERNALERROR>     config.hook.pytest_runtestloop(session=session)

我不确定为什么会出现此错误,但它并不总是发生。 我从 AWS 批处理环境运行这个测试套件,很多次(并非总是)它会抛出此错误。有时在本地测试时也是如此。

非常感谢任何帮助。

python selenium-webdriver
1个回答
0
投票

pytest 中的 INTERNALERROR 通常表示在测试套件执行期间发生了异常,该异常未在测试用例或装置中进行处理。您提供的堆栈跟踪片段并未给出导致错误的确切原因的完整详细信息,因为它显示了 pytest 遇到内部错误的位置而不是根本原因。

您可以执行以下步骤:

  1. 使用 -v 或 --verbose 选项运行 pytest 以获得更详细的输出,这可能有助于识别问题。
  2. 确保查看完整的堆栈跟踪,而不仅仅是指示内部错误的部分。实际错误可能会在输出中进一步出现。
  3. 如果您使用的是 Selenium 服务器,请检查其日志中是否有任何错误或警告,这些错误或警告可能表明 Webdriver 失败的原因。
  4. 由于您提到这是在 AWS 批处理环境中运行,因此您可能会遇到本地未发生的资源限制或超时。确保您的环境有足够的资源,并且您的 selenium 网格或 webdriver 服务具有响应能力。

此外,请确保装置中的设置和拆卸代码能够正确处理异常。如果抛出未捕获的异常,可能会导致 pytest 失败并出现 INTERNALERROR。

© www.soinside.com 2019 - 2024. All rights reserved.