1

を使用してファイルのアップロードを自動化する方法selenium

ファイルパスを与える方法??

TextBoxは読み取り専用です。にファイルパスを直接入力することはできませんtextbox

また、そのファイルが完全にアップロードされるまで selinum サーバーを停止する方法.??

マイ ファイル アップロード フィールドは非表示フィールドです。そして、firebugアドオンを使用してそのコードを見つけました。

ファイルコードを追加する前はこんな感じ。

<input id="ctl00_ContentPlaceHolder1_AsyncfileUpload_ClientState" type="hidden" name="ctl00_ContentPlaceHolder1_AsyncfileUpload_ClientState" autocomplete="off" value="{'isEnabled':'true','uploadedFiles':[]}">

そして、ファイル(docファイル)を追加した後。コードは次のように変更されました

<input id="ctl00_ContentPlaceHolder1_AsyncfileUpload_ClientState" type="hidden" name="ctl00_ContentPlaceHolder1_AsyncfileUpload_ClientState" autocomplete="off" value="{'isEnabled':'true','uploadedFiles':[{"fileInfo":{"FileName":"scope.docx","ContentType":"application/vnd.openxmlformats-officedocument.wordprocessingml.document","ContentLength":12887},"metaData":"/wEFsAF7IlRlbXBGaWxlTmFtZSI6ImZyeWd1NGNqLmt1YSIsIkFzeW5jVXBsb2FkVHlwZU5hbWUiOiJUZWxlcmlrLldlYi5VSS5VcGxvYWRlZEZpbGVJbmZvLCBUZWxlcmlrLldlYi5VSSwgVmVyc2lvbj0yMDExLjEuNTE5LjM1LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPTEyMWZhZTc4MTY1YmEzZDQiffOraDjiYXPavAAMYOUAVVhGEKk8"}]}">

ここで Xpath とは何ですか?

xpath id="ctl00_ContentPlaceHolder1_AsyncfileUpload_ClientState" で試しました。私が使用したコードは

selenium.type("id="ctl00_ContentPlaceHolder1_AsyncfileUpload_ClientState","c:\\docfile1.doc");

しかし、それは機能していません。

助けて..

4

2 に答える 2

1

このための XPath 式input//input[@id='ctl00_ContentPlaceHolder1_AsyncfileUpload_ClientState'].

ただし、Selenium は通常、目に見えない要素の操作を拒否するため、これは機能しないのではないかと心配しています。また、hidden <inputs>通常は、事前に入力されたデータのコンテナまたはスクリプトで検証および編集されたデータのコンテナです。

囲んでいる要素のクリックを処理する JavaScript があるかどうかを探す必要が<input type='file' />あります (ただし、率直に言って、通常はそうではありません - スクリプトは、クリックではなく、入力の編集に作用する傾向があります)。 .

見つからない場合は、さらにコードを投稿してください。最善の方法はSSCCEであるため、ページのソースを取得して裸にし、そこから不要なものをすべて取り除きます。私たちはコードが大好きです。そして、私たちは裸のものが大好きです。

そして、アップロードが完了するまでの待機について: そのようなデフォルトのものはありません。通常のフォームのアップロード中にファイルが送信された場合 ([送信] ボタンをクリック)、ブラウザは待機します。すぐにアップロードされる場合は、賢く待つ必要があります。アップロードが成功した後に何が変わるかを理解し、その要素/メッセージが表示されるのを待ちます。Selenium 2 (WebDriver) を使用すると、これを非常に簡単に行うことができます

于 2012-04-11T13:50:41.227 に答える
1

使用できます

selenium.type("xpath of text box","path of your file")

または IDE の場合

command=type
target=xpath_of_text_box
value=Path_of_your_file

例:

selenium.type("id=cvfile", "D:\\Automation\\resume.doc");
于 2012-04-11T07:13:06.867 に答える