问题描述
我正在使用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下)时,测试成功执行。请参阅成功附件。 但是,如果在测试用例中,“使用浏览器打开应用程序”之前没有几个关键字,则在“使用浏览器打开应用程序”下测试失败。请参阅失败附件。
在执行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