【问题标题】:Select a file in an already open dialog box with python用python在已经打开的对话框中选择一个文件
【发布时间】:2014-05-01 01:44:26
【问题描述】:

我使用 Selenium 在 Mac 上的浏览​​器中执行了一系列操作(尝试了 Chrome 和 FireFox)。

我使用 Selenium 函数单击一个按钮,该按钮打开一个操作系统级别的对话框,我可以在其中选择和“打开”一个文件。我知道 Selenium 不能与对话框交互,但是有 Python 函数可以吗? Tkinter 似乎只能在它打开的对话框中操作,而不是已经打开的框。

这是代码的一个版本,最后一个打开对话框的 Selenium 函数以粗体显示:

import webbrowser  
from from selenium import webdriver  
element = webdriver.Chrome()  
element.get('http://www.somewebsite.com')  
uploadfunction = driver.find_element_by_id('upload_file').click()  

在诉诸另一种语言之前,我坚持纯粹通过 Python(通过命令行)来完成。

【问题讨论】:

  • 在我随便给你一个答案之前,我强烈建议你查看控制按钮功能的 html 代码。除了打开对话框之外,看看 html 到底在做什么。几周前我遇到了类似的问题,并在 html 中找到了一个漂亮的小解决方法。当涉及到所有对话框时,selenium 也并非完全无能为力。警报 = driver.switch_to_alert()
  • 里面有很多东西,但相关的部分是:上传文件  有一大段 javascript 与这些 id 相关联,所以我需要以某种方式使代码接受本地文件(我想在这里使用路径“/User/name/documents ...”)作为正在上传的文件。我认为与对话框交互会最简单。 @Amazingred

标签: python selenium upload dialog


【解决方案1】:
import win32gui

win32gui.FindWindow(ClassName,WindowName) #should give you the control of the dialog that you want.  

另外,请查看this 问题的已接受答案,以获取对话的(尽管有点混乱)助手。

如果你仍然卡住,请告诉我。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-27
    • 1970-01-01
    • 2020-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-13
    相关资源
    最近更新 更多