python - 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 方法期间发生故障。我不确定关键字是否在产生任何影响之前执行。在关键字执行单独工作但不能在组中正常工作之前,有没有人遇到过这种问题?
解决方案
错误很可能来自您的环境变量,因为错误是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
推荐阅读
- c# - 如何同步执行主题中的功能?
- material-ui - 不再找到 material-ui 中的模块
- android - 如何以编程方式更改 TabItem 可见性?
- python - 如何测试 AVL 树的自定义实现
- gcc - 输入 GCC 的这种显然非标准的结构包装语法是什么?
- entity-framework - Entity Framework Core - 有转换 - 支持空值
- unity3d - 刚体不会停止向后移动
- ios - Swift - 此服务器的证书无效
- php - PHP Array of ex:8 项到 4 项的数组,包含该数组的 2-2 个元素
- javascript - 是否可以仅更改标签中的文本(没有其他元素)?