Selenium 2 RemoteWebDriver-StaleElementReferenceException:由';id';不再有效

Selenium 2 RemoteWebDriver-StaleElementReferenceException:由';id';不再有效,selenium,selenium-webdriver,Selenium,Selenium Webdriver,我使用的是集线器模式下的2.4.0 selenium服务器,它有两个节点,每个节点有5个Internet explorer实例(win7上的IE8)——这都在同一台win7机器上运行 下面的代码在对RemoteWebDriver上的FindElements的最后调用时引发异常 _driver.Navigate().GoToUrl(@"http://devrsql714/webpages/parentview.aspx"); var wait = new WebDriver

我使用的是集线器模式下的2.4.0 selenium服务器,它有两个节点,每个节点有5个Internet explorer实例(win7上的IE8)——这都在同一台win7机器上运行

下面的代码在对RemoteWebDriver上的FindElements的最后调用时引发异常

_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");
我可以看到浏览器加载、导航、填充文本框并单击按钮-页面刷新标题更改-断言通过(这在带有Gallio的MbUnit中运行)

但是对_driver.FindElementsByTagName的后续调用引发下面的异常-我添加了等待,以防出现问题,并且任何find元素都会导致相同的异常

我做错了什么驱动程序工作的其他属性,如标题和页面源(包含例外内容)

请注意,相同的代码,但将RemoteWebDriver替换为本地InternetExplorerDriver不会引发异常

在这两种情况下,功能都设置为忽略保护模式:

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() 

这显然是selenium服务器版本2.4.0中的一个bug。降级到2.3.0可能会使问题消失。有关更多信息,请参阅。

这显然是selenium服务器2.4.0版中的一个错误。降级到2.3.0可能会使问题消失。有关更多信息,请参见上的。

是的,这对我有效,但它导致了一些其他问题-似乎在没有向节点添加-log参数的情况下,它忽略了浏览器参数,并尝试启动Chrome,但它没有忽略对我有效的染料,但它导致了一些其他问题-似乎没有向它的节点添加-log参数忽略浏览器参数并尝试启动未被忽略的Chrome