试图在Windows文件上传中粘贴文件路径,当我在sendwait中传递文件路径时,它并不能一直粘贴所有数据,因此尝试使用以下内容,但是在这种情况下Enter键无法正常工作,不确定为什么。请帮助。
代码:
Clipboard.SetDataObject(FilePath,false,2,2000);
SendKeys.SendWait("^{V}");
SendKeys.SendWait(@"{ENTER}");
答案 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来显示该元素,但是此方法比尝试使用剪贴板等要有效得多。