【发布时间】: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