C# Webdriver切换到()

C# Webdriver切换到(),c#,webdriver,pageobjects,C#,Webdriver,Pageobjects,我是webdriver的初学者,开始学习页面对象模型 以下是我使用的代码: public static class test1 { public static ISearchContext Driver { get { return webDriver; } } } public static class test2 { public static test3 test3 {

我是webdriver的初学者,开始学习页面对象模型

以下是我使用的代码:

public static class test1
{
    public static ISearchContext Driver
    {
        get
        {
            return webDriver;
        }
    }
}

public static class test2
{
    public static test3 test3
    {
        get
        {
            var Test3 = new test3();
            PageFactory.InitElements(test1.Driver, Test3 );
            return Test3 ;
        }
    }
}

public class test3
{
    public void SwitchToFrame()
    {
        test1.Driver.SwitchTo().Frame(webDriver.FindElement(By.XPath("some xpath")));

    }
}
这会不断抛出错误。
SwitchTo
从未作为选项提供,有谁能告诉我为什么,请告诉我如何获得
SwitchTo
作为选项。
提前感谢

我认为切换到帧时需要使用帧ID、名称或索引。因此,如果您试图访问框架内的元素,则必须先切换到框架,然后执行webDriver.FindElement(By.XPath(“somexpath”))。此外,一旦进入框架,webdriver将保留在框架中,直到您使用
webdriver.switchTo().defaultContent()切换回顶层(Java)

我通常使用defaultContent为所有帧开关添加前缀:
webdriver.switchTo().defaultContent().switchTo().frame(“HeaderFrame”)

webdriver.switchTo().defaultContent().switchTo().frame(“HeaderFrame”).switchTo().frame(“子帧”)

如果我需要进入一帧中的一帧。这样,我总是从页面的顶部开始


希望这能有所帮助。

ISearchContext接口不是公开
切换到
的接口,
IWebDriver
是这样做的

使用ISearchContext的具体原因是什么?如果将其更改为
IWebDriver
,它将工作

此代码,例如:

public static IWebDriver Driver
{
    get
    {
        return webDriver;
    }
}
public void switchToPopUpFrame(){
     switchToDefaultFrame();
     webdriver.switchTo().getPopUpFrame();
  }

IWebDriver
实现了
ISearchContext
,并提供了更多功能。我强烈建议您使用它,而不仅仅是
ISearchContext
,除非您有特殊的理由这样做。

如果您试图切换到帧,请指定帧名称

driver.switchTo().Frame("YourFrameName");

如果要首先切换到另一帧中的某个帧,则应切换到第一帧,然后再从该帧切换到另一帧,例如:

public static IWebDriver Driver
{
    get
    {
        return webDriver;
    }
}
public void switchToPopUpFrame(){
     switchToDefaultFrame();
     webdriver.switchTo().getPopUpFrame();
  }

使用这种方法,您可以使用帧进行操作,并以您需要的方式组合它们

您缺少IWebDriver。在代码中包含IWebDriver,这将公开SwitchTo()方法。

请发布您正在接收的错误。Selenium.ISearchContext不包含SwitchTo的定义。我想使用SwitchTo切换到页面中的一个帧谢谢,当我改用iWebDriver时,问题得到了解决谢谢你花时间帮助我:)