Webdriver无法在框架内找到定位器

时间:2015-08-31 20:34:46

标签: c# iframe selenium-webdriver

我正在为Web应用程序编写一个框架。面对框架使用过程中的奇怪问题。 所有webelements都被声明为属性。

这是一段代码:

private  WebElement newOwner
    {
        get { return new WebElement().ById(Locators.btnNewOwnerID); }
    } 
public NewOwnerDialog OpenNewOwnerDialog()
    {
        //newOwner.Click();
        ClickWebElement(newOwner);
        return new NewOwnerDialog();
    }
public void ClickWebElement(WebElement webElement)
        {
            SwitchToPage();
            webElement.Click();
            QuitFrames();
        }

protected IWebDriverExt SwitchToPage()
        {
            if (!IsDriverOnTheFrame())
            {
                QuitFrames();
                SwitchFrame(FrameContainer);
            }
            return driver;
        }

我正在使用页面对象模型。我有框架内的菜单导航和页面内容的页面内容。   从我的例子中你可以看到我在使用之前切换到帧并在使用之后离开了帧。之前,当我导航到页面并使用内部元素时,我切​​换到框架,然后离开框架。

问题是:当我第一次切换到框架时,我可以使用里面的所有元素,可以执行所有操作。 在我离开框架然后又回到它之后 - webdriver看不到任何定位器,从调试我可以看到驱动程序在框架内,但看不到这些元素。

我使用过不同的浏览器,问题仍然存在。

请你帮我解决这个问题。

如果需要,我可以提供其他信息。

0 个答案:

没有答案