1

好的,所以这有点难以解释,所以我将从单词开始,然后进入一些代码。我正在使用一个名为 airtable 的数据库软件,它不允许我通过 API 上传图像。但是,用户可以通过表单提交上传图像,这会在库中创建新记录。我通过使用 Selenium 并打开网络表单,然后以用户身份输入数据来解决缺乏自动上传的问题。我遇到的问题是当我尝试上传文件时。我无法将文件路径发送到附件空间,而且我似乎被迫与 Windows 文件资源管理器弹出窗口进行交互。我已阅读此问题的答案问题,并尝试使用 win32com、autoit 和 selenium 切换到窗口功能。都没有明显的结果。这就是这里的情况,我现在将展示一个我正在尝试做的事情的例子。

首先我有这段代码,它打开了它下面的表单。Url 和 driver_path 已定义,但此处未显示

driver = webdriver.Firefox(executable_path=driver_path)
driver.get(url)

最初打开时的表单图像

现在我试图在这里传递一个文件路径,但似乎没有一个对象可以通过键盘访问。相反,我使用这个简短的代码来点击按钮

attach = driver.find_element_by_xpath("//div[@class='fsp-drop-area']")
attach.click()

按下此按钮会在网页中打开一个新窗口,如下所示:单击后的表单图像

同样,我试图在这里传递一个文件路径,但它似乎不是键盘可寻址的。作为与此表单交互的用户,我可以拖放文件,或单击按钮打开 Windows 文件资源管理器。第二个选项是下面的代码所做的。

attach = driver.find_element_by_xpath("//div[@class='fsp-drop-area']")
attach.click()

现在我只剩下这个:打开Windows资源管理器的表单图像,我无法从python与之交互。我似乎无法解决它以找出底部文件搜索框的名称是什么,并且尽管文件名搜索栏在打开时突出显示,但我无法向它发送击键。在脚本的前面,我保存了我现在尝试上传的照片,所以我知道它的完整文件路径,如果我可以访问那个框,就可以搜索它。我没有尝试以图形方式执行此操作,因为此代码将放在几台计算机上,并且它们没有相同的显示。

任何帮助都会非常受欢迎。

4

0 回答 0