我的selenium项目中有一个名为Document DocumentViewer
的类,其中包含名为CancelAndClose
的方法,它返回一个对象。该方法由四个不同的对象访问。因此,使用此method
的主要思想是返回调用此object
的{{1}}(带参数)的确切类型。
以下是method
类的主体:
DocumentViewer
所以我的问题是,如何找到对象的原始类public class DocumentViewer
{
private IWebDriver _driver;
private object _startedFrom;
public DocumentViewer(IWebDriver driver, object startedFrom)
{
_driver = driver;
_startedFrom = startedFrom;
//CODE TO CHECK WHETHER IS DRIVER IS IN THE RIGHT PAGE
}
}
public object CancelAndClose()
{
//I USE A CUSTOM METHOD FOR FINDING THE RIGHT WINDOW HANDLE AND RETURN IT BELOW
return new OneOfTheFourClasses(_driver);
}
}
并将其设置在_startedFrom
的位置?
编辑:此OneOfTheFourClasses
是一个页面对象,也是DocumentViewer
。
答案 0 :(得分:2)
免责声明:我不知道/没有使用Selenium所以我不知道你想要做的是“正确”(或理智等)或不是,但我可以字面意思回答你的问题......
要查找其类型,您只需拨打_startedFrom.GetType()
。
要构建另一个相同类型的对象,您需要使用反射。
var type = _startedFrom.GetType();
var ctor = type.GetConstructor(new Type[] { typeof(IWebDriver) });
var newObject = ctor.Invoke( new object[] { _driver } );
答案 1 :(得分:2)
您可以使用GetType():
public DocumentViewer(IWebDriver driver, object startedFrom)
{
_driver = driver;
_startedFrom = startedFrom;
//CODE TO CHECK WHETHER IS DRIVER IS IN THE RIGHT PAGE
Type objectType = _startedFrom.GetType();
}