-2

我正在将我的机器人框架脚本与 Jenkins 集成。以前我使用 Python 版本的驱动程序路径,它工作正常。但现在我们需要将驱动程序保留在项目位置,我们需要将该路径提供给可执行路径关键字。我尝试使用绝对路径和相对路径,但它不起作用。请查找以下脚本供您参考。只要有这个文件,我就把我的驱动程序保存在同一个文件夹中。因此,默认情况下,此 ${CURDIR} 返回当前文件目录。

下面的错误我进入了可执行路径

    *** Settings ***
Library      SeleniumLibrary
Variables    ../Resources/PageObjects/Login_Dashboard_TestData.py
Variables    ../Resources/PageObjects/Login_Dashboard_locators.py

*** Keywords ***
Start Browser
    [Arguments]                ${url}
    Set Global Variable  ${testsRootFolder}  ${CURDIR}
    log        ${testsRootFolder}
    ${chrome_path}      Catenate   SEPARATOR=       ${CURDIR}          \\     chromedriver.exe
    log     ${chrome_path}
    create webdriver           ${Browser}       executable_path='${chrome_path}'
    ${driver}=                 Open Browser    ${url}       ${Browser}
    Set Global Variable        ${driver}
    Maximize Browser Window

我得到以下错误。

安装失败:TypeError:“模块”对象不可调用

在上面的“Chrome”关键字脚本问题中。用小 c 代替大写 C m。但是现在 m 面临替换字符串的问题。需要用双斜杠替换单斜杠。我尝试使用下面的脚本。但它给出了无效的语法错误。

  ${chrome_path}      Catenate   SEPARATOR=      ${EXECDIR}          \\     chromedriver.exe
log     ${chrome_path}
${chrome_path}=       Evaluate    ${chrome_path}.replace('\\','\\\\')

log     ${chrome_path}
Create Webdriver     ${Browser}   executable_path=${chrome_path}
Go To    ${url}
4

1 回答 1

0

问题解决了。我将脚本从评估字符串更新为替换字符串。现在工作正常。

    *** Settings ***
Library      SeleniumLibrary
Variables    ../Resources/PageObjects/Login_Dashboard_TestData.py
Variables    ../Resources/PageObjects/Login_Dashboard_locators.py
Library       String

*** Keywords ***
Start Browser
    [Arguments]                ${url}
    Set Global Variable  ${testsRootFolder}  ${EXECDIR}

    ${chrome_path}      Catenate   SEPARATOR=      ${EXECDIR}          \\    Drivers     \\       chromedriver.exe

    ${result} =    Replace String    ${chrome_path}    \\    \\\\

    Create Webdriver     ${Browser}   executable_path=${result}
    ${driver}=      Go To    ${url}

    Set Global Variable        ${driver}
    Maximize Browser Window
于 2020-08-18T02:52:02.653 回答