Загрузите файл с помощью веб-драйвера Selen в C # - PullRequest
0 голосов
/ 26 марта 2012

Я пытаюсь загрузить файл с помощью веб-драйвера selenium в c #.

Я пытаюсь это: WebDriver.FindElement (By.Name ( "загрузить")) SendKeys ( "C: \ Users \ Test \ Desktop \ test.cs").

но это не работает.

Это работает должным образом в IDE Селена, но не в веб-драйвере Селена.

Ниже приведен HTML-код страницы:

где я пытаюсь использовать следующий элемент: <input class="js-attach-file" type="file" tabindex="-1" name="upload">

<!DOCTYPE html>
<html lang="en">
<head>
<body class="page-index firefox firefox-9 windows extra-large-window full-content window-up">
<div id="nocss">
<div id="surface" class="clearfix" style="height: 725px;">
<div class="window-overlay">
<div class="window" style="left: 375px; top: 50px; display: block;">
<div class="window-wrapper clearfix">
<div>
<div class="window-header-utils">
<div class="window-header clearfix">
<div class="window-main-col">
<div class="window-sidebar">
<div class="window-module card-label-list clearfix hide">
<div class="window-module clearfix">
<div class="window-module clearfix attachments">
<h3>Attachments</h3>
<ul class="attachment-list hide"></ul>
<p class="no-attachments empty">No attachments.</p>
<div class="uploader touch-hide">
<form class="realfile" enctype="multipart/form-data" method="post" action="/api/card/4f701c9daf1765861a15545c">
<input type="hidden" value="" name="token">
<input type="hidden" value="attachFile" name="method">
<input type="hidden" value="http" name="format">
<input class="js-attach-file" type="file" tabindex="-1" name="upload">
</form>
<a class="button-link highlight-icon fakefile js-fakefile">
</div>
<p class="error js-file-too-large" style="display:none; -moz-border-radius: 3px; -webkit-border-radius: 3px; font-weight: bold; margin: 8px 0 0; padding: 6px; background: #e3e3e3; ">File too large. 10mb limit.</p>
</div>
<div class="window-module other-actions clearfix">
<div class="window-module quiet-actions clearfix">
</div>
</div>
</div>
</div>
</div>
<div class="pop-over clearfix fancy-scrollbar" style="display: none;">
<script>
<script src="https://d2k1ftgv7pobq7.cloudfront.net/js/78dcaf5810779a263fe6939fc4895487/all.js">
</body>
</html>

Ответы [ 3 ]

0 голосов
/ 07 июня 2015

Селен не может идентифицировать или распознать элемент, атрибутом которого является тип файла.

Like example

 <input type="file" id="id1" name="abc"></input>

поэтому, чтобы справиться с этой ситуацией, мы должны использовать сторонний инструмент, такой как Point Position, для вычисления координат x и Y кнопки обзора.

тогда мы можем использовать либо низкоуровневый щелчок мышиобрабатывать в C # или мы должны использовать инструмент Autoit V3 для обработки всплывающих окон.

Более подробно с подробным объяснением и практическим примером вы можете найти в моем блоге: http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/upload-file-using-selenium-web-driver.html

0 голосов
/ 09 января 2016

Вы можете найти решение по ссылке ниже.Вы можете решить эту проблему, используя javascript

  String script = "document.getElementById('fileName').value='" +"C:\\\\temp\\\\file.txt" + "';";
  ((IJavascriptExecutor)driver).executeScript(script);

Webdriver: Загрузка файла

0 голосов
/ 26 марта 2012

Если вы используете браузер Firefox вместо Send keys, используйте type.

И если браузер IE, то вам нужно использовать такой инструмент, как Autoit, или Selenium 2 содержит метод attach_file или использовать this

sel.attach_file ("css= input [type = file] "," http://url.com/file.txt")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...