【问题标题】:Robot Framework Webdriver Manager - Not able to get driver path when executed with other keywordsRobot Framework Webdriver Manager - 使用其他关键字执行时无法获取驱动程序路径
【发布时间】:2021-02-05 04:05:54
【问题描述】:

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

#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库,并创建了一个打开应用程序的关键字(见下面的代码sn-p)。

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

【问题讨论】:

  • 什么python版本和操作系统?
  • @rasjani 其 python 3.7 与 Windows 10

标签: python robotframework webdriver-manager


【解决方案1】:

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

我的环境中有这样的东西:

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

【讨论】:

    猜你喜欢
    • 2019-02-08
    • 2016-12-16
    • 2015-04-25
    • 1970-01-01
    • 2021-07-17
    • 2015-07-13
    • 2017-08-08
    • 1970-01-01
    • 2019-11-07
    相关资源
    最近更新 更多