使用 Selenium 将文件附件上传到 Outlook Office 365 电子邮件 Python

Uploading a File Attachment to Outlook Office 365 Email using Selenium Python

我正在从事一个项目,该项目要求 Outlook Office 365 由 Selenium 自动化。我想上传一个文件附件到我的电子邮件,但尽管进行了广泛的研究,但还是不知道如何上传。我已多次尝试找到用于发送文件路径的正确元素,但 none 成功并导致没有任何操作发生,或者抛出“NoSuchElementException”错误。

如何使用 Selenium 将文件作为电子邮件附件上传到 Office 365 中的电子邮件草稿?

我试过的一个代码示例:

fileInputElement = driver.find_element_by_css_selector('input[type="file"]')
driver.execute_script("((el) => el.style.display = 'block', fileInputElement)")
fileInputElement.send_keys('abs/path/to/attachment/file')

上面的修改示例:

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

fileInputElement = driver.find_element_by_css_selector('input[type="file"]')
driver.execute_script("((el) => el.style.display = 'block', fileInputElement)")
element = WebDriverWait(driver, 10).until(
        EC.visibility_of(fileInputElement)
    )
element.send_keys('abs/path/to/attachment/file')
wait=WebDriverWait(driver,10)                                     

elem=wait.until(EC.presence_of_element_located((By.CSS_SELECTOR,"input[type='file']")))

driver.execute_script("arguments[0].style.display = 'block';", elem)
                                            
elem.send_keys(absolutepath)

你要做的是等待元素出现,然后设置为显示块,然后发送密钥。

进口:

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC