我的 selenium 项目中有一个名为 Document DocumentViewer
的类,它包含名为 CancelAndClose
的方法,它返回一个对象。此方法由四个不同的对象访问。因此,使用此方法
的主要思想是返回调用此方法
的对象
(带有参数)的确切类型。
这是 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
是一个页面对象,也是 TheFourClasses
。
最佳答案
免责声明:我不知道/没有使用过 Selenium,所以我不知道您尝试做的事情是否“正确”(或理智等),但我确实可以回答你的问题...
要找出它的类型,您可以简单地调用 _startedFrom.GetType()
。
要构造另一个相同类型的对象,需要使用反射。
var type = _startedFrom.GetType();
var ctor = type.GetConstructor(new Type[] { typeof(IWebDriver) });
var newObject = ctor.Invoke( new object[] { _driver } );
关于c# - 从对象中读取类数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20907626/