C#Selenium:发送键“” {ENTER}“”无效

时间:2019-12-11 11:31:17

标签: c# selenium sendkeys

试图在Windows文件上传中粘贴文件路径,当我在sendwait中传递文件路径时,它并不能一直粘贴所有数据,因此尝试使用以下内容,但是在这种情况下Enter键无法正常工作,不确定为什么。请帮助。

代码:

Clipboard.SetDataObject(FilePath,false,2,2000);
SendKeys.SendWait("^{V}");
SendKeys.SendWait(@"{ENTER}");

2 个答案:

答案 0 :(得分:0)

您是否尝试过直接将路径发送到输入元素?这是使用Selenium上传文件的最佳方法。

示例:

Driver.FindElement(By.ClassName("upload")).SendKeys(path);

您正在找到input元素,该元素负责上传并发送指向它的路径。

答案 1 :(得分:0)

如果必须使用上述方法,则可以使用:

element.SendKeys(Keys.Enter);

但是,如果您要上传文件,通常可以使用input将密钥发送到type='file'元素:

var inputElement = Driver.FindElement(By.XPath("//input[@type='file']"));

// optional: depending on web page, may need to 'reveal' the element
((IJavaScriptExecutor)Driver).ExecuteScript("arguments[0].style.display = 'block';", inputElement);

inputElement.SendKeys("C:\\Path\\To\\My\\File.txt");

如果元素被隐藏,您可能需要执行Javascript来显示该元素,但是此方法比尝试使用剪贴板等要有效得多。