Загрузка файла PrimeFaces с Selenium WebDriver.
Я успешно протестировал fileUploadSimple http://www.primefaces.org/showcase/ui/fileUploadSimple.jsf с помощью метода webElement.sendKeys(). Это не работает с автоматической загрузкой
Есть ли способ протестировать файл PrimeFacesUploadAuto http://www.primefaces.org/showcase/ui/fileUploadAuto.jsf с Selenium WebDriver?
1 ответ
Мне тоже нравится твое развитие. Я собираюсь поделиться своими знаниями, но, возможно, есть лучший способ.
JSF-код на стороне сервера
<h:form id="lifeProposalEntryForm" enctype="multipart/form-data">
<p:fileUpload fileUploadListener="#{AddNewLifeProposalActionBean.handleProposalAttachment}"
mode="advanced" multiple="true" sizeLimit="3000000" update="customerEntryPanel attachmentDataList"
allowTypes="/(\.|\/)(gif|jpe?g|png)$/" id="proposalAttachment"/>
</h:form>
HTML-код на стороне клиента
<div id="lifeProposalEntryForm:proposalAttachment" class="ui-fileupload ui-widget">
<div class="ui-fileupload-buttonbar ui-widget-header ui-corner-top">
<span class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-icon-left ui-fileupload-choose" role="button">
<span class="ui-button-icon-left ui-icon ui-c ui-icon-plusthick"></span>
<span class="ui-button-text ui-c">Choose</span>
<input id="lifeProposalEntryForm:proposalAttachment_input" type="file" multiple="multiple" name="lifeProposalEntryForm:proposalAttachment_input">
</span>
<button class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-icon-left ui-fileupload-upload" type="button" role="button">
<span class="ui-button-icon-left ui-icon ui-c ui-icon-arrowreturnthick-1-n"></span>
<span class="ui-button-text ui-c">Upload</span>
</button>
<button class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-icon-left ui-fileupload-cancel" type="button" role="button">
<span class="ui-button-icon-left ui-icon ui-c ui-icon-cancel"></span>
<span class="ui-button-text ui-c">Cancel</span>
</button>
</div>
......
- Получить элемент
lifeProposalEntryForm:proposalAttachment_input
отid
, - Поместите / sendkey файл (один или несколько файлов)
- Получить элемент
second button
из<div id="lifeProposalEntryForm:proposalAttachment"
, - Нажмите кнопку элемента.
Селиниум Тестирование в Яве
webElement = driver.findElement(By.id("lifeProposalEntryForm:proposalAttachment_input"));
webElement.sendKeys("C:\\temp\\life\\life_1.jpg");
webElement = driver.findElement(By.xpath("//input[@type='file'and @id='lifeProposalEntryForm:proposalAttachment_input']"));
webElement= driver.findElement(By.xpath(".//*[@id='lifeProposalEntryForm:proposalAttachment']/div[1]/button[1]"));
webElement.click();
Попробуйте, как я уже упоминал. Это работа для меня.