2015-10-13 8 views
1

Облицовочные проблема с загрузкой файла в браузере, т.е., его прекрасно работать в Firefox и хром, но не в ie.Am используя ниже кодПроблема с загрузкой файла в селеном WebDriver браузер IE10

driver.findElement(By.xpath("//html/body/div[1]/div/main/div/form/div[1]/div[1]/ng-form/card/fieldset/div/div[9]/div[2]/div[2]/div/span/ng-form/label/div/span[2]")).sendKeys("/home/FF41/application.ini"); 

Он не показывает какой-либо error, а не sendkeys, если мы дадим щелчок по его открытию нового window.so xpath работает нормально, но почему он терпит неудачу, т. е. даже правильный путь xpath.

Absolute XPath:

//html/body/div[1]/div/main/div/form/div[1]/div[1]/ng-form/card/fieldset/div/div[9]/div[2]/div[2]/div/span/ng-form/label/div/span[2]

нет ошибок, но файл для загрузки не сделали.

относительная XPath

//*[@id=\"c0-Attachment-8\"] 

не видно исключением элемента

HTML код: -

<input id="c0-Attachment-8" class="targetx-file-input ng-pristine ng-valid ng-touched ng-valid-required" type="file" ng-class="{'ng-touched' : attName !== undefined }" ng-required="fileRequired" ng-disabled="success || attName" onchange="angular.element(this).scope().setFiles(this)" accept="" ng-model="filename" name="c0-Attachment-8"/> 
+1

Можете ли вы предоставить HTML-код для этого? Какую ошибку вы получаете? –

+1

+1

Если я использую абсолютный xpath, он не показывает никакой ошибки // html/body/div [1]/div/main/div/form/div [1 ]/div [1]/ng-form/card/fieldset/div/div [9]/div [2]/div [2]/div/span/ng-form/label/div/span [2], но если Я использую относительный путь xpath, который выдает ошибку, не видный элемент. –

ответ

0

Try используя ниже: XPath

//input[@id='c0-Attachment-8'] 
+0

Я использовал его, его не работало –

+0

Какая ошибка вы получаете? –

+0

Элемент не отображается –

-1

Еще один лучший вариант - использовать SendKeys Class (в пространстве имен System.windows.form) Он может работать с любым браузером. Вы можете использовать следующий код:

 drv = new InternetExplorerDriver("path to IE Driver Server exe"); 
     drv.Navigate().GoToUrl("your URL"); 
     drv.FindElement(By.XPath("enter your xpath here")).Click(); 
     Thread.Sleep(5000); 
     SendKeys.SendWait("complete file path to upload"); 
     SendKeys.SendWait("{ENTER}"); 
     drv.FindElement(By.XPath("submit button xpath")).Click(); 

Этот код находится в C#. Дайте мне знать, если это решит вашу проблему.

+0

Работаю над java. –

+0

Какую версию драйвера селена IE вы используете? Точно так же: http://stackoverflow.com/questions/30897718/current-ie-doesnt-support-file-upload-using-selenium-webdriver-2-42-000 –

+0

Я бегу его в соусе лаборатории –

1

Как вы используете ie10, так что очевидно, что вы работаете над окнами.

Теперь SendKeys необходим абсолютный путь к файлу в то время как у вас есть упоминания путь файла, как Линукс каталоги

Вы используете этот путь: -

/home/FF41/application.ini 

В то время как вы должны дать путь окна шаблона : -

C:\\Users\\Easy\\Desktop\\testfile.txt 

Так что попробуйте с

driver.findElement(By.xpath("//html/body/div[1]/div/main/div/form/div[1]/div[1]/ng-form/card/fieldset/div/div[9]/div[2]/div[2]/div/span/ng-form/label/div/span[2]")).sendKeys("C:\\Users\\Easy\\Desktop\\application.ini"); 

Вам также необходимо нажать кнопку загрузки после операции

+0

am. используя setFileDetector для этой цели. Обычно я использую лаборатории соуса для запуска своих тестов. –

+0

Я никогда не пробовал с помощью setFileDetector. Попробуйте приведенный выше пример. Он должен работать для вас :) –

+0

Его работа над сайтом других сайтов, но сайт, который испытывает неудачу –