簡體   English   中英

機械手:EXECDIR中的反斜線,Windows路徑

[英]Robot: Backslash in EXECDIR, Windows path

潛在問題:我想在EXECDIR中存儲的便攜式Firefox中啟用使用硒2運行機器人測試。

${firefox_binary}=  Evaluate    sys.modules['selenium.webdriver.firefox.firefox_binary'].FirefoxBinary('${EXECDIR}${/}Firefox${/}App${/}Firefox${/}Firefox.exe')    sys, selenium.webdriver 
${firefox_profile}= Evaluate    sys.modules['selenium.webdriver.firefox.firefox_profile'].FirefoxProfile('${EXECDIR}${/}Lib${/}SeleniumFirefoxProfile') sys, selenium.webdriver 
Create Webdriver    Firefox firefox_binary=${firefox_binary}    firefox_profile=${firefox_profile}  

如果我使用實際路徑而不是$ {EXECDIR},那將很好用。

EXECDIR類似於C:\\Users\\bart.simpson\\workspace\\projectname 問題在於,反斜杠(后跟b)將轉換為ASCII反斜杠字符。 然后,測試日志顯示:

Evaluating expression 'sys.modules['selenium.webdriver.firefox.firefox_profile'].FirefoxProfile('C:\Users\bart.simpson\workspace\projectname\Lib\SeleniumFirefoxProfile')' failed: OSError: [Errno 20047] Unknown error: 20047: 'C:\\Users\x08art.simpson\\workspace\\projectname\\Lib\\SeleniumFirefoxProfile'

當然,我曾嘗試使用${fixedExecDir}= Replace String ${EXECDIR} '\\' '/'等等,但是沒有任何改變。

有想法嗎? 謝謝。

嘗試將路徑視為原始字符串文字,方法是在${EXECDIR}之前的引號前放置一個“ r”:

${firefox_binary}=  Evaluate    ....FirefoxBinary(r'${EXECDIR}${/}Firefox...')

這應該起作用,因為在將字符串傳遞給python之前已替換了機械手變量,因此python解釋器僅能看到完整的字符串。

如果您不熟悉python原始字符串文字,請參見以下問題:

Python中的“ u”和“ r”字符串標志到底做了什么,什么是原始字符串文字?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM