2016-08-30 4 views
2

新しいselenium 3.0 beta jarファイルを更新した後、次のコードを使用しています。しかし、以前のバージョンのセレンでは完全に動作していました。jarファイルをSelenium 3.0にアップデートした後にドロップダウンオプションを選択できません

それがエラーを与えていたとして、私は更新:

org.openqa.selenium.NoSuchElementException: Cannot locate option with index: 1

For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html Build info: version: 'unknown', revision: '2aa21c1', time: '2016-08-02 14:59:43 -0700' System info: host: 'GUR-ITD-8C', ip: '172.21.45.117', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_31' Driver info: driver.version: unknown

expedia.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 
Select LineOfBusiness = new Select(expedia.findElement(By.id("lineOfBusiness"))); 
LineOfBusiness.selectByIndex(1); 
Assert.assertEquals(LineOfBusiness.getFirstSelectedOption().getText(), "HWW Sales"); 
+0

また、ドロップダウンをHTMLでも共有しますか?オプションのサイズを 'System.out.println(LineOfBusiness .getOptions()。size());'として出力し、結果を知りましょう。:) –

+0

+0

何この 'System.out.println(LineOfBusiness.getOptions()。size());の出力です。 –

答えて

0

私はSelectクラスを使用してあなたのケースでは、問題が何であるかわからないんだけど、あなたは別のソリューションをしたい場合は、このから取り除くためにエラーが発生した場合は、JavascriptExecutorを以下のように試してみてください。 -

public static String selectByIndex(WebDriver driver, WebElement select, int index) { 

     String javaScript = "var select = arguments[0]; " 
       + "select.options[arguments[1]].selected = true;" 
       + "return select.selectedOptions[0].text"; 

     return (String) ((JavascriptExecutor) driver).executeScript(javaScript, select, index); 
} 


WebElement select = expedia.findElement(By.id("lineOfBusiness")); 

Assert.assertEquals(selectByIndex(expedia, select, 1), "HWW Sales"); 
+1

それは感謝私の作品が、私はそれがlineOfBusinessのために、私は他の人を選択している場合にのみ、より多くのJavascriptExecutorを使用する必要がありますと思います。右 ?あなたのhelp.Yeahため –

+0

JavaScriptを使用して、実際の自動ユーザーテストのためによくないですが、何もahead..thanksを行くために働かない場合は、オプションとしてそれを取ることができるので、何が機能しない場合ははい、あなたはそれを考慮することができます。.. :) –

+1

おかげI私はしばらくの間、エラーを解決するために働くことを理解します私はjavascriptexecutorを使用します –

関連する問題