我正在使用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()
答案 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