2017-06-06 89 views
0

我使用python selenium獲取測試截圖,但在ubuntu中,保存的截圖將路徑名作爲文件名並保存在桌面上。我已經使用了相同的代碼在Windows和文件被保存在正確的目標:在Ubuntu中使用'save_screenshot'獲取python selenium的文件路徑

def shot(): 
    ts = time.time() 
    path = "\home\sudhanshu\Desktop\shots\sb" 
    extension = ".png" 
    screensave = datetime.datetime.fromtimestamp(ts).strftime('%d%m%Y%H%M%S') 
    print (path+screensave+extension) 
    wd.save_screenshot(path+screensave+extension) 

在這裏,如果你看到的路徑,我想與時間戳的文件作爲文件名保存在一個文件夾命名鏡頭呈現在桌面上,但它將完整路徑作爲文件名並保存在桌面上。同樣的事情在windows上完美運行。我嘗試添加不同的路徑,如將~\sudhanshu\Desktop\shots06062017170730.png設置爲路徑,但沒有任何效果。任何人都可以請提出建議。

+0

這似乎是一個分隔符問題。在windows上\,但在Linux上,你應該使用/ –

+0

最初我嘗試使用/,但它根本不起作用... –

+0

This line:'path =「\ home \ sudhanshu \ Desktop \ shots \ ts」'doesn不要做你期望的事情,因爲'\ t'被解釋爲製表符。使用'os.path.join'或者如果你必須使用文字反斜槓,把它們放在原始字符串中:'path = r「\ home \ sudhanshu \ Desktop \ shots \ ts」' – BoarGules

回答

0

通過使用/和os.path.join再次開始工作。感謝大家。

0

您應該使用os.path.joinos.filesep來操縱文件路徑。

import os 
import time 
def shot(): 
    ts = time.time() 
    path = os.path.join("home","sudhanshu","Desktop","shots","sb") 
    extention = ".png" 
    screensave = datetime.datetime.fromtimestamp(ts).strftime('%d%m%Y%H%M%S') 
    print(os.path.join(path, screensave+extention)) 
    wd.save_screenshot(os.path.join(path, screensave+extention)) 
+0

你能告訴我在我的示例代碼上的用法嗎? –

+0

'def shot():' 'ts = time.time()' 'path = r「\ home \ sudhanshu \ Desktop \ shots \ ts」' 'extension =「.png'」' 'screensave = datetime.datetime.fromtimestamp(ts).strftime('%d%m%Y%H%M%S')' 'new = os.path.join(path, screenave,extention)' 'wd.save_screenshot(new)' –

+0

這對我來說工作得很好。 – demouser123