Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 向windows文件对话框发送密钥_C#_Selenium_Testing_Dialog_Sendkeys - Fatal编程技术网

C# 向windows文件对话框发送密钥

C# 向windows文件对话框发送密钥,c#,selenium,testing,dialog,sendkeys,C#,Selenium,Testing,Dialog,Sendkeys,我想将字符串ABC发送到windows文件对话框的输入字段。使用此代码行,我可以将焦点设置为正确的元素。我看到一个闪烁的光标 var filedialogOverlay = drv.SwitchTo().ActiveElement(); 但是下面的代码不会将字符串写入元素中 Thread.Sleep(1000); filedialogOverlay.SendKeys("ABC"); 编辑: 文件上传提示由我想测试的网站显示。由于黑盒测试,我看不到源代码。是否有分析GUI的工具 当我右键单击输

我想将字符串
ABC
发送到windows文件对话框的输入字段。使用此代码行,我可以将焦点设置为正确的元素。我看到一个闪烁的光标

var filedialogOverlay = drv.SwitchTo().ActiveElement();
但是下面的代码不会将字符串写入元素中

Thread.Sleep(1000);
filedialogOverlay.SendKeys("ABC");
编辑: 文件上传提示由我想测试的网站显示。由于黑盒测试,我看不到源代码。是否有分析GUI的工具

当我右键单击输入元素时,我得到以下选择


如果需要上载文件,请尝试将文件路径直接发送到相应的输入字段:

drv.FindElement(By.XPath("//input[@type='file']")).SendKeys("ABC");

另外,如果页面上有多个用于文件上载的输入字段,您可能需要更具体的
XPath
,如
“//input[@id='some_specific_file_upload']”

您可以使用Windows窗体的SendKeys.SendWait

//Input the file path into the filename field:
SendKeys.SendWait(longfilepath);
//Input "Enter" key
SendKeys.SendWait(@"{Enter}");

如果您的意思是像这样的文件上传提示,那么您的代码将无法工作<代码>drv.SwitchTo().ActiveElement()允许切换到您当前关注的元素,例如光标位于内部的文本输入字段。。。要上载文件,需要将文件路径发送到
element方法
ActiveElement()
返回页面中的活动元素,而不是文件对话框。Selenium不支持“文件”对话框,但它支持通过直接在
元素上调用带有文件路径的
Sendkeys
来上传文件。@Florent B.请在回答中显示完整的代码,好吗?但如何获取输入字段名?我指的是“Windows”中的标准对话框覆盖。要打开文件上载提示,显然需要单击按钮,对吗?检查该按钮的
HTML
,您会发现提到的
元素我没有机会看到代码。我是一个黑盒测试仪。是否有用于分析GUI的工具?您只需使用浏览器即可查看
HTML
。使用右键单击所需的web元素,然后选择类似于
检查元素
不要左键单击上载按钮打开文件上载对话框。右键单击第页上的上载按钮对不起,延迟回复,您可以参考此链接: