2014-07-07 64 views
0

我正在使用Selenium和Python來嘗試自動測試上傳到服務器的CVs。除了如何上傳一個文件夾(大約11個文件)以及不同文件類型(如.odt, .doc, .docx, .pdf, .eml文件)外,我想出了一切。我計劃將文件重命名爲001.doc, 002.pdf等,並使用循環通過迭代for x in range(1, x)並將x附加到PATH_TO_FILE = "Path\00" + x上來逐一上載,這將給"Path\001.file_type"。所以主要的問題是:我可以以某種方式一個接一個地上傳文件夾而無需重命名它們?那些是簡歷,他們有隨機的名字。此外,如何處理文件類型的問題,因爲它們都是不同的。我發現唯一的方法是將send_keys發送到輸入類型文件以上載文檔,並且需要該文件的絕對路徑。如何上傳具有不同文件類型的任意數量的文件

我正在嘗試構建的測試套件目前非常粗糙,我設法只處理了使用XPATH查找元素,但是這種上傳問題讓我難以承受。

# Find browse button 
    browse_button = self.retrieve_browse_button 
    # Type in path to CVs 
    PATH_TO_CVS = "C:\\11MainTestCVS\\00" 
    for x in range(1, 12): 
     browse_button.send_keys(PATH_TO_CVS + x + file_type) # How to determine file type? 
    # Click load 
    xpath = "//a[contains(@href, 'javascript:submitCV()')]" 
    self.webdriver.find_element_by_xpath(xpath).click() 

回答

1

至於我收到了你的問題,你正在尋找水珠:

from os import path 
from glob import glob 
EXTENSIONS = ['*.pdf', '*.eml', '*.doc'] 
DOC_PATH = '/PATH/TO/YOUR/FILES' 

files = []  
for ext in EXTENSIONS: 
    files.extend(glob(path.join(DOC_PATH, ext))) 

# files will now contain all files in DOCPATH with EXTENSIONS 
+0

謝謝你很多。它絕對有幫助。我現在有一束絕對路徑來糾正帶有正確擴展名的文件,現在可以通過send_keys方法安全地發送它們以便上傳。我會檢查並閱讀更多有關glob的內容。 – Contempt

相關問題