Selenium webdriver 如何在Windows7中处理selenium中的文件上载
我正在用selenium编写一个脚本,使用webdriver和nunit自动化我的web应用程序。我必须在我的应用程序中上传文件。但是做不到 单击浏览按钮时,对话框打开,选择文件后,文件将上载 浏览 我怎样才能用硒来做呢Selenium webdriver 如何在Windows7中处理selenium中的文件上载,selenium-webdriver,nunit,automated-tests,Selenium Webdriver,Nunit,Automated Tests,我正在用selenium编写一个脚本,使用webdriver和nunit自动化我的web应用程序。我必须在我的应用程序中上传文件。但是做不到 单击浏览按钮时,对话框打开,选择文件后,文件将上载 浏览 我怎样才能用硒来做呢 Answer is already available on stack, still I am repeating: 找到upload按钮,创建此的webelement,然后按照以下代码操作: //open upload window upload.click
Answer is already available on stack, still I am repeating:
找到upload按钮,创建此的webelement,然后按照以下代码操作:
//open upload window
upload.click();
//put path to your image in a clipboard
StringSelection ss = new StringSelection(<give file location>);
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss, null);
//imitate mouse events like ENTER, CTRL+C, CTRL+V
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
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);
//打开上传窗口
上传。点击();
//将图像的路径放入剪贴板
StringSelection ss=新StringSelection();
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss,null);
//模拟诸如ENTER、CTRL+C、CTRL+V等鼠标事件
机器人=新机器人();
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
机器人按键(KeyEvent.VK_控制);
robot.keyPress(KeyEvent.VK_V);
robot.keyrease(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_控制);
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
我正在使用的C#与selenium可能重复。我试过这个驱动程序.FindElement(By.Id(“pickfiles”).SendKeys(“D:\\file1.rar”);但它不起作用。我也尝试过使用AutoIT,但无法运行AutoIT提供的exe文件。我文件中的元素是Browse,它正在使用plupload javascript API上载文件。我解决了此问题,参考此链接,我还有一个问题。在这种情况下,文件上载者使用ActiveX控件上载文件。问题是,我无法找到要单击的元素。
public void uploadFile(String locatorId, String filePath) {
WebElement fileInput = findElementExplicitWaitWithNoVisbility(By.id(locatorId), true);
fileInput.clear();
fileInput.sendKeys(filePath);}