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}

现在,当我仅使用一个关键字“使用浏览器打开应用程序”执行测试用例(在Robot Framework下)时,测试成功执行。请参阅成功附件。

enter image description here

但是,如果在测试用例中,“使用浏览器打开应用程序”之前没有几个关键字,则在“使用浏览器打开应用程序”下测试失败。请参阅失败附件。

enter image description here

在执行get_browser_driver_path方法期间发生故障。我不确定关键字是否在执行之前就没有影响。 有没有人遇到过这样的问题,在此之前,关键字执行可以很好地隔离运行,但不能分组运行?

解决方法

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

我的环境中有类似的东西

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