如何上传具有不同文件类型的任意数量的文件

时间:2014-07-07 10:19:52

标签: python selenium file-upload xpath

我正在使用Selenium和Python来尝试自动测试上传到服务器的CVs。除了如何使用不同的文件类型(如.odt, .doc, .docx, .pdf, .eml文件)逐个上传文件夹(大约11个文件)之外,我想出了一切。我计划将文件重命名为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 个答案:

答案 0 :(得分:1)

据我提问你正在搜索glob:

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
相关问题