2011-08-16 1 views
1

2つのノードがそれぞれInternet Explorerの5つのインスタンス(win7のIE8)を持つ2つのノードを持つ2.4.0 Seleniumサーバーを使用しています。すべて同じWin7のマシン上Selenium 2 RemoteWebDriver -StaleElementReferenceException: 'id'で指定された要素が有効ではなくなった

を実行している次のコードは、RemoteWebDriver

_driver.Navigate().GoToUrl(@"http://devrsql714/webpages/parentview.aspx"); 
      var wait = new WebDriverWait(_driver, new TimeSpan(0, 0, 40)); 
      wait.Until(d => d.FindElement(By.ClassName("TitleAlternative"))); 
      Console.WriteLine(string.Format("Window title: {0}", _driver.Title)); 
      var element = _driver.FindElementById("txtLessonID"); 
      element.SendKeys("13814"); 
      var button = _driver.FindElementById("btnLessonID"); 
      button.Click(); 
      wait = new WebDriverWait(_driver, new TimeSpan(0, 0, 40)); 
      var link = wait.Until(d => d.Title.Contains("01652-06-A")); 
      Console.WriteLine(string.Format("Window title: {0}", _driver.Title)); 
      Assert.IsTrue(_driver.Title.Contains("01652")); 
      Console.WriteLine(string.Format("page source: {0}", _driver.PageSource)); 
      _driver.FindElementsByTagName("DIV"); 

にFindElementsに、最終的な呼び出しで例外がスローされます私は、ブラウザの負荷を参照してナビゲートし、テキストボックスをFILLINし、ボタンをクリックすることができます - ページがタイトルの変更をリフレッシュする - アサートの通過(これはGallioでMbUnitで実行されている)

しかし_driver.FindElementsByTagNameへの後続の呼び出しは、以下の例外がスローされます - 私は問題だったと同じ例外で任意の検索要素の結果は

私が間違って何をやっている場合の待機を追加しましたか? - 他のそのようなタイトル、ページのソースとしてドライバ作業のプロパティ(例外の含有量を有​​する)

注同じコードが、ローカルInternetExplorerDriverためRemoteWebDriverを交換する両方の場合において例外

をスローしない能力がありました保護モードを無視するように設定します。

DesiredCapabilities capabilities = DesiredCapabilities.InternetExplorer(); 
      capabilities.Platform = new Platform(PlatformType.Any); 
      capabilities.SetCapability("ignoreProtectedModeSettings", true); 

Execute 
OpenQA.Selenium.StaleElementReferenceException: Element specified by 'id' is no longer valid (WARNING: The server did not provide any stacktrace information) 
Build info: version: '2.4.0', revision: '13337', time: '2011-08-12 09:57:13' 
System info: os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.6.0_20' 
Driver info: driver.version: RemoteWebDriver 
    at OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse) in c:\Projects\WebDriver\trunk\dotnet\src\WebDriver\Remote\RemoteWebDriver.cs:line 948 
    at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(DriverCommand driverCommandToExecute, Dictionary`2 parameters) in c:\Projects\WebDriver\trunk\dotnet\src\WebDriver\Remote\RemoteWebDriver.cs:line 805 
    at OpenQA.Selenium.Remote.RemoteWebDriver.FindElements(String mechanism, String value) in c:\Projects\WebDriver\trunk\dotnet\src\WebDriver\Remote\RemoteWebDriver.cs:line 851 
    at OpenQA.Selenium.Remote.RemoteWebDriver.FindElementsByTagName(String tagName) in c:\Projects\WebDriver\trunk\dotnet\src\WebDriver\Remote\RemoteWebDriver.cs:line 622 
    at SeleniumTests.DemoTest.AnotherTest() 

答えて

1

これは明らかに、セレンサーバーのバージョン2.4.0のバグです。 2.3.0にダウングレードすると、問題が解消される可能性があります。詳細については、selenium-users mailing listthis threadを参照してください。

+0

はい、それは私のために働いたが、それは他のいくつかの問題を引き起こした - ブラウザパラメータを無視し、無視されなかったChromeを起動しようとしたノードに-logパラメータを追加しないと思われる – Richard