2

enter image description hereSel Java-код для этой страницы я попыталсяНевозможно загрузить файл первенствовать с компьютера селеном

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"); 

ERRor Подробности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

Почему бы вам не попробовать косую черту '/'. Он будет работать, если вы обеспечиваете абсолютный путь. Поддерживает Linux. –

+0

Привет всем, В то время как iam, использующий «//», не выполняет ошибку компиляции ime, но моя цель все еще не выполняется, открывается только mycomputer, а затем, несмотря на то, что ошибка запускается следующим образом ** (Исключение в потоке «main» org .openqa.selenium.NoSuchElementException: Невозможно найти элемент: {"method": "name", "selector": "datafile"}) **, а мой код - ** driver.findElement (By.id ("div_btnFileUpload" .)) нажмите(); WebElement elementfile = driver.findElement (By.name ("datafile")); \t \t elementfile.sendKeys ("C: \\ Users \\ Phantom \\ Documents \\ 1.txt"); ** –

+0

похоже, что идентификатор неверен, проверьте, что элемент может быть идентифицирован с помощью css или xpath –

ответ

2

Так вы просто используйте \\ и ваш код будет работать

WebElement elementfile= driver.findElement(By.name("datafile")); 
    elementfile.sendKeys("C:\\Users\\Phantom\\Documents\\1.txt"); 
+0

Привет всем, В то время как iam, использующий «\\», не выполняет ошибку компиляции ime, но моя цель все еще не выполняется, открывается только mycomputer, а затем, несмотря на то, что ошибка запускается следующим образом ** (Исключение в потоке «main» org .openqa.selenium.NoSuchElementException: Невозможно найти элемент: {"method": "name", "selector": "datafile"}) **, а мой код - driver.findElement (By.id ("div_btnFileUpload")). click (); WebElement elementfile = driver.findElement (By.name ("datafile")); elementfile.sendKeys («C: \\ Users \\ Phantom \\ Documents \\ 1.txt») –

0

Используйте двойные обратные косые черты (\\) в пути, если вы используете окна или использовать прямую косую черту, если ваш используете Linux или Mac (//)

Лучший способ это место ваш файл, и это папка внутри самого проекта и Вы также можете использовать путь, как показано ниже: -

./src\\Documents\\1.txt 

ИЛИ

String testDataFile = System.getProperty("user.dir"+"\\1.txt"); 
File src = new File(testDataFile) 

user.dir даст вам расположение текущей директории проекта

Это означает, что ваш файл Excel должен присутствовать в самой папке проекта. Создайте папку в каталоге проекта и вставьте этот файл в эту папку. Таким образом, git также подтолкнет эти данные к вашему репозиторию и будет также размещаться на сервере.

Надеется, что это поможет :)

+0

Привет всем, В то время как iam с помощью «\\» он не выполняет ошибку компиляции ime, но моя цель все еще не выполняется, только mycomputer открывается, а затем, несмотря на то, что выполняется ошибка выполнения tome ** (Исключение в потоке «main» org.openqa.selenium.NoSuchElementException: Не удалось найти элемент: {«method»: «name», «selector»: «datafile "}) **, а мой код - driver.findElement (By.id (" div_btnFileUpload ")). click(); WebElement elementfile = driver.findElement (By.name ("datafile")); elementfile.sendKeys («C: \\ Users \\ Phantom \\ Documents \\ 1.txt») –

0

enter image description here Привет Qa Тестирование плз обновить последнюю строку кода

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 можно сделать двумя способами:

1. via sikuli or autoit tool (Basically windows automation tool). 
2. direct upload when the tag has one attribute **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"); 

Надеется, что это помогает вам сейчас.

+0

Привет, Rajnish Kumar, он прошел. Ошибка времени компиляции, так как загружен picz, то есть «Исключение в потоке» main »java.lang .Error: Неразрешенная проблема компиляции: \t Недопустимая escape-последовательность (допустимые - \ b \ t \ n \ f \ r \ "\ '\\)" –

+0

да u правильно, она даст ошибку времени компиляции u не ошибка времени выполнения plz обновите свой путь внутри sendKeys до этого «C: \\ Users \\ Phantom \\ Documents \\ 1.txt» и ошибка времени компиляции исчезнет –

+0

Привет всем, В то время как iam, использующий «\\», не выполняет компиляцию ime error, но моя цель все еще не выполняется, открывается только mycomputer, а затем, несмотря на то, что выполняется ошибка выполнения tome ** (Исключение в потоке «main» org.openqa.selenium.NoSuchElementException: Не удается найти элемент: {"method" : «name», «selector»: «datafile»}) **, а мой код - driver.findElement (B . Y.id ("div_btnFileUpload")) нажмите(); WebElement elementfile = driver.findElement (By.name ("datafile")); elementfile.sendKeys («C: \\ Users \\ Phantom \\ Documents \\ 1.txt») –

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}"); 
0

@QATesting - Вы можете обновить свой код, как показано ниже:

Он должен работать, как это работает для меня. И отдайте свой тестовый метод приоритету в соответствии с вашим требованием. Для примера я отдал приоритет здесь как @Test (priority = 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); 
} 
Смежные вопросы