2016-09-09 9 views
-1

私はハイブリッドフレームワーク、つまりオブジェクト、データ、キーワードを使用しています。私は、インデックスごとにドロップダウンのランダムな値を選択することに固執しています。selectByIndex(data)in Selenium Hybrid Frameworkのランダムな値のドロップダウン

テストデータTest Dataを入力ファイルに記述した場合、整数の列WorkGroupがあります。つまり、ドロップダウンのインデックス値だけである整数型のドロップダウンの入力があります。 2番目の画像で、se.selectByIndex(data)が問題を引き起こしていることがわかります。

エラーは次のとおりです。

メソッドselectByIndex(int型)タイプで選択した引数には適用されません(文字列)

Code where error comes

public String selectDropdown(String object,String data){ 
    APP_LOGS.debug("Selecting dropdown values.");    
    try{ 
     WebElement _directoryDDL = driver.findElement(By.id(OR.getProperty(object))); 
      Select se = new Select(_directoryDDL); 
      se.selectByIndex(data); // This is where error is coming. I need to use only index. 
      return Constants.KEYWORD_PASS; 
     } 
    catch(Exception e1){ 
     return Constants.KEYWORD_FAIL+" Control not found."; 
     } 
    } 

私はできませんgo selectByValueまたはselectByVisibleTextユーザーごとにドロップダウンの値が変化するためです。だからこそインデックス値だけがここの唯一の解決策です。あなたは、パラメータに文字列型であるデータを渡しているのに対し、

+0

このエラーを出す理由は、Excelシートから来ている引数でデータを与えているからです。それは0または1のエクセルでは問題ありませんが、コードでは文字列形式です。これを解決するには? – Rav

答えて

0

エラーが発生すると、intが必要な場所にStringを渡しています。 Integer.parseInt(String s)またはInteger.parseUnsignedInt(String s)

+0

ありがとう、それは働いた。 – Rav

0

selectByIndex方法は、整数の引数を期待しています。それがエラーを出す理由です。 StringをIntegerに変換するコードを以下に示します。

se.selectByIndex(Integer.parseInt(data)); 
+0

valueOfも動作しています:)この質問のためにあなたのタイムアウトを取ってくれてありがとう。 – Rav

0

Selenium WebDriverで使用する言語に応じて文字列を整数に変換するだけです。

Convert a String to a Number

すなわち、入力文字列が数値であることを確認してください「1」、「0」、などそうしないと、例外が発生します。