selenium自带了对应的API可以上传问题,如果这个上传文件的html code中显示的type是file那么你就可以使用下面的代码上传文件。
/** * click the upload button to upload the file ,this is for hte webFile element ,the input type is file * @param driver * @param e * @param filepath * http://sauceio.com/index.php/2012/03/selenium-tips-uploading-files-in-remote-webdriver/ * upload the local file from remote webdriver */ public void uploadFile(WebElement e,String filepath){ String uploadcode=getInnerHtmlCode(e); highLight(e); logger.info("the upload webelement html code we get is:"+uploadcode); e.sendKeys(filepath); }
其中只需要填上对应的上传文件的路径即可,这个针对的是WebDriver实例的,如果是用的是RemoteWebDriver实例,那么你可能还需要设置一个属性如下(它的用途是可以识别运行的server端文件的文件为远程执行机器的路径,所以你可以直接上传文件):
driver.setFileDetector(new LocalFileDetector());
driver=new RemoteWebDriver("",capability);