2014-07-07 2 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

Смежные вопросы