2012-01-20 20 views
0

ChromeDriverが選択ボックスから項目を選択するよう強制しています。ChromeDriverが選択にアクセスできない

productChoooser.getText() = ... 
    BASE 2013 
    BASE 2014 

を、それでも、私はある例外...コードを取得する:しかし、そのはそれは選択では、コードの下に、

Options = select.getOptions(); 

ストレンジがあるライン上のすべての項目をgetText();方法プリントアウトで失敗します選択ボックス内のアイテムをクリックしようとしています:

List<WebElement> Options; 
    WebElement productChoooser = driver.findElement(By.id("mainForm:aucPanelId:1:product")); 
    System.out.println("productChoooser.getText() = " + productChoooser.getText()); 
    Select select = new Select(productChoooser); 
    Options = select.getOptions(); 
    String product = "BASE 2013"; 
    for (WebElement option:Options){ 
     System.out.println("option.getText() = " + option.getText()); 
     if(option.getText().equals(product)){ 
      option.click(); 
     } 
    } 

誰もそれを避ける方法を知っていますか?私は、最新バージョンにChromeとchromedriver.exeを更新しようとしましたが、任意の成功なしで...

スタックトレース:

org.openqa.selenium.WebDriverException:(WARNING:サーバーはいずれかを提供していませんでしたスタックトレース情報) コマンドの継続時間またはタイムアウト:47ミリ秒 ビルド情報:バージョン: '2.16.1'、リビジョン: '15405'、時刻: '2012-01-05 12:30:12' システム情報:os.name : 'Windows XP'、os.arch: 'x86'、os.version: '5.1'、java.version: '1.6.0_20' ドライバ情報:driver.version:RemoteWebDriver at sun.reflect.NativeConstructorAccessorImpl java.lang.reflect.Constructor.newInstanceでsun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) でsun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) で.newInstance0(ネイティブメソッド) ( Constructor.java:513)ORGでorg.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:113) でorg.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:147) で。 (RemoteWebDriver.java:435) at RemoteWebElement.java:161) at org.openqa.selenium.remote.RemoteWebElement.findElementsByTagName(RemoteWebElement.java:227) at org.openqa.selenium.By $ ByTagName.findElements(By.java:313) at org.openqa.selenium.remote。 RemoteWebElement.findElements(RemoteWebElement.java:146) at org.openqa.selenium.support.ui.Select.getOptions(Select.java:70) at com.deutscheboerse.testing.RegulationTest.selectProduct(RegulationTest.java:53) sun.reflect.DelegatingMethodAccessorImpl.invokeでsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) でsun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブメソッド) (DelegatingMethodAccessorImpl.java:25) でorg.junitで.runners.model.FrameworkMethod $ 1.runReflectiveCall(FrameworkMethod.java:44)(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal。 org.junit.runners.BlockJUnit4ClassRunner.runChildでorg.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4ClassRunner.java:79) でrunners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) (BlockJUnit4ClassRunner.java:71) org.junit.runners.ParentRunner $ 1.scheduleでorg.junit.runners.ParentRunner $ 3.run(ParentRunner.java:193) でorg.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49) で ( ParentRunner。java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access $ 000(ParentRunner.java:42) at org.junit.runners.ParentRunner $ 2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.junit.runner.JUnitCore.run(JUnitCore.java:157) at com。 intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:71)com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:199)com.intellij.rt.execution.junit.JUnitStarterで で 。 main(JUnitStarter.java:62) at sun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブメソッド) at sun.reflect.N com.intellij.rt.execution.application.AppMain.mainでativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) (AppMain.java:120)

答えて

1
 WebElement select = webDriver.findElement(selector); 
     List<WebElement> optionList = select.findElements(By.tagName("option")); 
     for (WebElement option : optionList) { 
      if (option.getText().trim().equalsIgnoreCase("your value")) { 
       option.click(); 
       break; 
      } 
     } 
関連する問題