我试图使用 selenium WebDriver 在“dropbox.com”中上传文件,当我单击选择文件时,它会自动弹出一个窗口,它们没有用于发送文件路径的文本区域。遇到这种情况怎么处理?
在某些情况下,人们使用 Robot 类,但我不明白它有什么用,我阅读了 java 文档,但我没有得到清晰的想法,请有人帮忙解决这个问题,非常感谢。
1. 使用sendKeys():
If the input type = file
然后您可以轻松地使用 sendKeys() 方法并将文件的绝对路径传递给Choose file
控制。
//Find the element of upload button and send the path
WebElement element= driver.findElement(By.name("datafile"));
element.sendKeys("C:\Users\Easy\Desktop\testfile.txt");
2.使用AutoIT:
由于文件上传窗口是 Windows 控件,因此您必须使用 AutoIT 等 Windows 自动化工具来发送文件路径。使用 AutoIT,您可以创建一个 .au3 文件并将其编译为 .exe,然后从 Selenium 脚本调用此 exe 文件。
Runtime.getRuntime().exec("your exe file");
AutoIT 代码为:
WinWaitActive("File Upload")
Send("Full path of the document")
Send("{ENTER}")
3.使用Robot类:
使用 Robot 类,您可以将文件的绝对路径复制到剪贴板,然后将其粘贴到 Windows 文件上传窗口中。
setClipboardData(fileLocation);
//native key strokes for CTRL, V and ENTER keys
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)