2016-05-15 5 views
0

2つのブラウザでファイルアップロードを自動化しようとしていますが、ウィンドウ名はFirefoxでは「ファイルアップロード」、Chromeでは「開く」です。私は2つの異なるスクリプトを書いてはいけません。実行時にタイトルとファイル名を選択

ブラウザ間の互換性を実現するために、実行時にタイトルとファイル名を選択するにはどうすればよいですか?私はSeleniumとtestNGを使っていますが、AutoItはファイルアップロードのためだけです。

+1

コードNehaを共有できますか? –

+0

firefox: - ControlFocus( "ファイルのアップロード"、 ""、 "Edit1") ControlsetText( "File Upload"、 "Edit1"、 "C://file.xls") ControlClick( "ファイルのアップロード"、"、 "Button1") クロム: - ControlFocus( "Open"、 "Edit") ControlsetText( "Open"、 "Edit1"、 "C://anotherfile.xls ") ControlClick(" Open "、" "Button1") タイトルが異なるブラウザで変更されるため、テストが失敗します。実行時にタイトルを受け入れるautoiTスクリプトを作成したいと考えています。実行時にもファイル名を指定します??? –

+0

@Neha Soni、AutoItを使う必要はありません。 Seleniumは ''要素で呼び出された 'sendKeys'を使ってファイルのアップロードをサポートしています。 –

答えて

0

使用しているWebブラウザに基づいて変数を設定し、その変数を使用します。以下のコードはあなたを正しい道に導くはずです。

$FirefoxUpload = "File upload" 
$ChromeUpload = "Open" 

if WinExists($FirefoxUpload) 
    $UploadWindow = $FirefoxUpload 
elseif WinExists($ChromeUpload) 
    $UploadWindow = $ChromeUpload 
else 
    $UploadWindow = "" 
endif 

if $UploadWindow <> "" 
    ControlFocus($UploadWindow,"","Edit1") 
    ControlsetText($UploadWindow,"","Edit1","C://file.xls") 
    ControlClick($UploadWindow,"","Button1") 
endif 
+0

ありがとうございましたdale私はこれが私の問題を解決するかもしれないと思う..また、私は別のファイルのために実行時変数をつけることができますか? –

+0

はい。ユーザーがファイルを選択するようにしたい場合は、FileOpenDialogのヘルプを参照してください。あなたがリストを持っているなら、配列に関する助けを見てください。あるいは、テキストファイルにファイルのリストがある場合は、AutoItヘルプのFileOpen、FileRead、...エントリをチェックしてください。 –

関連する問題