WebElement element=driver.findElement(By.id("ddlEmailSource"));
org.openqa.selenium.support.ui.Select se=new org.openqa.selenium.support.ui.Select(element);
se.selectByValue("ff");
driver.findElement(By.id("div_btnFileUpload")).sendKeys("C:\Users\Phantom\Documents\1.txt");
错误详情 Invalid escape sequence (valid ones are \b \t \n \f \r \" \' \\ )
该页面的HTML代码
<input title="Click to Select and Upload File" style="position: absolute; margin: 0px; padding: 0px; opacity: 0; top: 20px; left: 21px;" name="MyFile" type="file">
还试过
driver.findElement(By.name("MyFile")).sendKeys("C:\Users\Phantom\Documents\1.txt");
但它也是通过错误详细信息 Invalid escape sequence (valid ones are \b \t \n \f \r \" \' \\ )
尝试
WebElement elementfile= driver.findElement(By.name("datafile"));
elementfile.sendKeys("C:\Users\Phantom\Documents\1.txt");
附上错误详情
请告诉我该怎么做
答案 0 :(得分:2)
所以你只需使用\\
,你的代码就可以了
WebElement elementfile= driver.findElement(By.name("datafile"));
elementfile.sendKeys("C:\\Users\\Phantom\\Documents\\1.txt");
答案 1 :(得分:0)
如果您使用的是Windows,请在路径中使用双反斜杠(\\
);如果您使用的是linux或mac(//
),请使用正斜杠
更好的方法是将文件及其文件夹放在项目中,您也可以使用以下路径: -
./src\\Documents\\1.txt
OR
String testDataFile = System.getProperty("user.dir"+"\\1.txt");
File src = new File(testDataFile)
user.dir
将为您提供项目当前目录的位置
这意味着您的Excel文件应该出现在项目文件夹中。在项目目录中创建一个文件夹,并将该文件粘贴到该文件夹中。这样git也会将这些数据推送到您的存储库,并且也将按服务器进行定位。
希望它会对你有所帮助:)。
答案 2 :(得分:0)
driver.findElement(By.id("div_btnFileUpload")).sendKeys("C:\Users\Phantom\Documents\1.txt");
到
driver.findElement(By.id("div_btnFileUpload")).sendKeys("C:\\Users\\Phantom\\Documents\\1.txt");
这将解决您所面临的问题。另请注意,在Java中使用selenium时总是使用双斜杠“\\”。
更新:
Selenium中的文件上传可以通过两种方式完成:
1. via sikuli or autoit tool (Basically windows automation tool).
2. direct upload when the tag has one attribute **type=file**
在您的情况下,您尝试在按钮上进行文件上传而不是在上 带有 type = file 属性的标记,这就是每次弹出一个窗口的原因 当你运行上面的代码。而是做文件上传,就像下面一样(如截图所示)
driver.findElement(By.name("MyFile")).sendKeys("C:\\Users\\Phantom\\Documents\\1.txt");
或者如果不起作用,则使用
driver.findElement(By.xpath("//*[@id='div_btnFileUpload']/input[2]")).sendKeys("C:\\Users\\Phantom\\Documents\\1.txt");
希望这对你有帮助。
答案 3 :(得分:0)
您可以使用第三方应用程序AutoIt来完成此任务。
您的AutoIt脚本应如下所示
WinWaitActive("Choose File to Upload"); //File Upload is the dialog's title
Send("C:\Users\xxx.xxx\Documents\filename.csv");
Send("{ENTER}");
答案 4 :(得分:0)
@QATesting - 您可以按以下方式更新代码:
它应该起作用,因为它对我有用。并根据您的要求优先考虑您的测试方法。仅举例来说,我在此优先考虑@Test(优先级= 1)。我希望它适合你。
@Test(priority = 1)
public void CERTIFICATIONSSCREENUploadCertficationFilesValidation()
throws InterruptedException, AWTException {
//Click on File Upload Button
driver.findElement(By.xpath("//*[@id='certificationFile']")).click();
Thread.sleep(1000);
// Set the file name in the clipboard. Also following line of code will search file in your computer so make sure you provide correct file path.
StringSelection s = new StringSelection("C:\\Doc\\CertificationFile.xls");
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(s, null);
Thread.sleep(1000);
Robot robot1 = new Robot();
robot1.keyPress(KeyEvent.VK_ENTER);
robot1.keyRelease(KeyEvent.VK_ENTER);
robot1.keyPress(KeyEvent.VK_CONTROL);
robot1.keyPress(KeyEvent.VK_V);
robot1.keyRelease(KeyEvent.VK_V);
robot1.keyRelease(KeyEvent.VK_CONTROL);
robot1.keyPress(KeyEvent.VK_ENTER);
robot1.keyRelease(KeyEvent.VK_ENTER);
Thread.sleep(1000);
}