【发布时间】:2017-04-15 00:21:29
【问题描述】:
我想将字符串ABC 发送到Windows 文件对话框的输入字段。使用此代码行,我可以将焦点设置到正确的元素。我看到一个闪烁的光标。
var filedialogOverlay = drv.SwitchTo().ActiveElement();
但是下面的代码并没有将字符串写入元素中。
Thread.Sleep(1000);
filedialogOverlay.SendKeys("ABC");
编辑: 文件上传提示由我要测试的网站显示。由于黑盒测试,我看不到源代码。有分析 GUI 的工具吗?
当我右键单击输入元素时,我会得到以下选择。
【问题讨论】:
-
如果您的意思是像cumc.columbia.edu/it/howto/remote/img/dnuploadfile25.jpg 这样的文件上传提示,您的代码将不起作用。
drv.SwitchTo().ActiveElement();允许切换到您当前关注的元素,例如带有光标的文本输入字段...要上传文件,您需要将文件路径发送到<input type="file">元素 -
ActiveElement()方法返回页面中的活动元素,而不是文件对话框。 Selenium 不支持文件对话框,但它支持文件上传,方法是直接在<input type="file">元素上调用Sendkeys并使用文件的路径。 -
@Florent B. 你能告诉我答案中的完整代码吗?
标签: c# selenium testing dialog sendkeys