RF:更换Escape Chars

时间:2018-03-07 13:01:16

标签: robotframework

我正在尝试用\替换/,但由于转义字符,机器人框架没有按照我的预期行事。我得到以下结果:

${location1} =    Replace String    C:\Users\bnduch\Downloads    \    /

结果:

/ C /:/ U / S / E / R / S / B / N / d / U / C / H / d / O / W / N / L / O / A / d / S /

如何避免在这里逃跑?

编辑: 为了获得其他选择,我将添加目录字符串的来源。

为了在IE中使用下载的文件,我必须获得默认的下载位置。 (原因是我们无法修改IE下载位置)

def get_ie_download_path():
    reg = Reg()
    path = 'HKCU\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders'
    downloadregconfig = reg.read_value(path, '{374DE290-123F-4565-9164-39C4925E467B}')
    downloadlocation = downloadregconfig["data"]
    return downloadlocation

使用上述功能我正在获取IE默认下载位置,即C:\ Users \ bnduch \ Downloads,但不能使用它,因为它包含' \'。所以我被迫更新' \'到' /'。这样我就可以删除/删除文件。这是我正在使用的代码

${DownloadDir}=  get_ie_download_path
${DownloadDir}=  Catenate  ${DownloadDir}/Daily Reads Status Report.xlsx
Remove File  ${DownloadDir}

请建议

1 个答案:

答案 0 :(得分:1)

你有几个问题,都与反斜杠是一个转义字符有关。

首先,您需要转义C:\Users\bnduch\Downloads中的反斜杠,即:C:\\Users\\bnduch\\Downloads

接下来,您需要对其他两个参数执行相同的操作。要获得单个反斜杠,请使用两个;获得两个,使用四个:\需要\\\\需要\\\\

您的完整陈述应如下所示:

${location1} =    Replace String    C:\\Users\\bnduch\\Downloads    \\    \\\\

这样,${location1}将被设置为28字节的字符串C:\\Users\\bnduch\\Downloads

所有这一切,这看起来像代码味道。您需要在文件路径中使用双反斜杠替换反斜杠是非常罕见的。如果您能告诉我们您认为需要这样做的原因,我们可以提供更好的解决方案。