2012-03-26 6 views
1

C#でセレンウェブドライバを使用してファイルをアップロードしようとしています。c#でセレンウェブドライバを使用してファイルをアップロードします。

私はこれを試しています: WebDriver.FindElement(By.Name( "upload"))。SendKeys( "C:\ Users \ test \ Desktop \ test.cs");

これは機能しません。

これはセレンIDEでは正しく動作しますが、セレンのwebdriverでは正しく動作していません。

ページのHTMLコードは以下の通りです:あなたはSend keys使用typeの代わりにFirefoxブラウザを使用している場合 <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> 
+0

を使用することによってそれを解決することができ、本当に起こっていただきました!あなたはセレンプロセスを「見て」しようとしたと確認しましたか? – ChrFin

+0

はい私はしようとしましたが、実際には何もありませんでした.......セレンが実際に何をしているのか理解できませんでした。 ...アップロードボタンを利用できました...詳細を知りたい場合はお知らせください.........ありがとうございます。 – Ramesh

+0

セレンは正確に何をしますか?それは道に入るか?アップロードを開始しますか?それはセレンrcの何かエラーを与えるか? – ChrFin

答えて

-3

:私は、次の要素を使用しようとしています

とブラウザがIEの場合、uはAutoItのセレン2のようなツールを使用する必要があり、メソッドattach_fileが含まれているかthis

sel.attach_file( "CSS =入力[タイプ=ファイル]"、「HTTPを使用します。 //url.com/file.txt ")

+0

こんにちはありがとう.........私もこれを試してみました....しかし、私はいくつかの異なるコントロールを持っていると思う... ... 1つのテストボックスの代わりに..私はファイルのパスを置くことができ、2番目は送信し、サーバーに要求を送信することです。私は2つのアクションを実行している1つのボタンを持っています.oneは、ファイルを選択するためにウィンドウを開くことであり、他はサーバーにファイルアップロード要求を送信することです。 – Ramesh

+0

元の質問は、Selenium WebDriverを指しています。あなたが参照するメソッドは、Selenium WebDriverではなく、Selenium RCに存在します。 – JimEvans

-1

セレンは、属性がタイプファイルである要素を識別または認識できません。

Like example 

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

ので、この状況に対処するために、我々は、x & Yは、参照ボタンの座標を計算するポイント位置のようなサードパーティ製のツールを使用する必要があります。

次に、c#で低レベルのマウスクリックハンドルを使用するか、ウィンドウポップアップを処理するためにAutoit V3ツールを使用する必要があります。

あなたは私のブログ上の完全な説明と実用的な例を用いて詳細に詳細を見つけることができます。http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/upload-file-using-selenium-web-driver.html

0

あなたは下のリンクで解決策を見つけることができます。 あなたはjavascript

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

Webdriver: File Upload

関連する問題