首页 > 解决方案 > Robot Framework Webdriver Manager - 使用其他关键字执行时无法获取驱动程序路径

问题描述

我在 Robot Framework 下使用 webdriver-manager 来自动管理驱动程序。我创建了一个 python 库,其中定义了获取驱动程序路径的方法(请参见下面的代码片段):

#BrowserDriverManager.py
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
def get_browser_driver_path():
    driver_path = ChromeDriverManager().install()
    return  driver_path

我已经在 Robot Framework 资源下导入了 python 库并创建了一个用于打开应用程序的关键字(请参见下面的代码片段)。

Open application using browser
    ${url}=    Generate URL for web request via browser
    ${driverPath}=      get_browser_driver_path
    Create Webdriver    ${BROWSER}      executable_path=${driverPath}
    Go To   ${url}

现在,当我只使用一个关键字“使用浏览器打开应用程序”执行测试用例(在机器人框架下)时,测试成功执行。请参阅成功附件。在此处输入图像描述 但是,如果在测试用例中“使用浏览器打开应用程序”之前的关键字很少,则在“使用浏览器打开应用程序”下测试失败。请参阅故障附件。在此处输入图像描述

在执行 get_browser_driver_path 方法期间发生故障。我不确定关键字是否在产生任何影响之前执行。在关键字执行单独工作但不能在组中正常工作之前,有没有人遇到过这种问题?

标签: pythonrobotframeworkwebdriver-manager

解决方案


错误很可能来自您的环境变量,因为错误是ValueError: unknown locale: en-USpython 似乎无法识别的错误。

我的环境中有类似的东西:

LC_ADDRESS=en_US.UTF-8
LC_ALL=en_US.UTF-8
LC_COLLATE=en_US.UTF-8
LC_CTYPE=en_US.UTF-8
LC_IDENTIFICATION=en_US.UTF-8
LC_MEASUREMENT=en_US.UTF-8
LC_MESSAGES=en_US.UTF-8
LC_MONETARY=en_US.UTF-8
LC_NAME=en_US.UTF-8
LC_NUMERIC=en_US.UTF-8
LC_PAPER=en_US.UTF-8
LC_TELEPHONE=en_US.UTF-8
LC_TIME=en_US.UTF-8

推荐阅读