2017-11-03 17 views
1

いくつかのアップロードを行い、webdriver C#でファイルの種類が受け入れられているかどうかを確認するテストを実行する方法を探しています。Selenium Webdriverで繰り返しタスクを作成する方法C#

アップロードされたすべてのファイルがサイトで受け入れられているかどうかを確認する必要があります。これまでは1つのファイルしかアップロードできませんでしたが、アップロードしたファイルをチェックして受け入れたり拒否したり、次のファイルをアップロードしたりするループを実行したいと思います。オールインワンテスト。これまでは1つのファイルしかアップロードできません:

public UploadPage HTUpload() 
    { 
     int retryCount = 0; 
     while (true && retryCount < Constants.RETRY_COUNT) 
     { 
      try 
      { 
       _driver.FindElement(By.Name("files[]")).SendKeys("C:\\\\Users\\\\me\\\\Desktop\\\\Capture.JPG"); 
       return this; 
      } 
      catch (Exception ex) when (ex is WebDriverTimeoutException || ex is TimeoutException) 
      { 
       retryCount++; 
       Thread.Sleep(3000); 
      } 
     } 
     return this; 
    } 

ありがとうございました。

答えて

0

コードでは、1つのファイルのみをアップロードしており、パスはハードコードされています。メソッドを変更してファイルパスを受け入れ、そのファイルをアップロードしようとする必要があります。

  1. while (true &&

    を固定しなければならないいくつかの他の問題は、あなたがあなたのwhiletrue &&を持っている理由私はよく分からないがあります。それは削除する必要があります。

  2. タイムアウトが発生した後でスリープする必要はありません。既に長いタイムアウト期間がありそうですが、それ以上待つ必要はないようです。

ここに私の提案

public UploadPage HTUpload(string filePath) 
{ 
    int retryCount = 0; 
    while (retryCount < Constants.RETRY_COUNT) 
    { 
     try 
     { 
      _driver.FindElement(By.Name("files[]")).SendKeys(filePath); 
      return this; 
     } 
     catch (Exception ex) when (ex is WebDriverTimeoutException || ex is TimeoutException) 
     { 
      retryCount++; 
     } 
    } 
    return this; 
} 
+0

で更新されたコード申し訳ありませんが、?。」また別の質問、なぜ任意の理由を、これは愚かな質問のように聞こえるかもしれないが、私はファイルパスするために、対応する引数を渡すかどこです私はすでにChromeとFirefoxでは動作していましたが、IE11では動作しませんでしたか? – Geezus

+0

あなたは 'HTUpload(" C:\\\\ Users \\\\\\\\\ Desktop \\\\ Capture.JPG ")またはそれはIEでうまくいかない理由はわかりません。 – JeffC

関連する問題