C# 扩展selenium2功能PageFactory
我想向selenium2C# 扩展selenium2功能PageFactory,c#,reflection,selenium-webdriver,castle-dynamicproxy,C#,Reflection,Selenium Webdriver,Castle Dynamicproxy,我想向selenium2PageFactory添加一项功能。我想要的是FindsByAttribute与SelectedElement兼容。 我发现的问题是,如果我使用SelectElement将属性添加到IWrapsElement中,并在ProxiedWebElementInterceptor中实现它。当调用该字段的方法SetValue时,他说“类型为'Castle.Proxies.InewSwrapElementProxy'的对象不能转换为类型为'OpenQA.Selenium.Suppor
PageFactory
添加一项功能。我想要的是FindsByAttribute
与SelectedElement
兼容。
我发现的问题是,如果我使用SelectElement
将属性添加到IWrapsElement
中,并在ProxiedWebElementInterceptor
中实现它。当调用该字段的方法SetValue
时,他说“类型为'Castle.Proxies.InewSwrapElementProxy'的对象不能转换为类型为'OpenQA.Selenium.Support.UI.SelectElement'
有人能解释castle代理返回所需值的机制吗?试试这个
// Presumed to be in Page class
[FindsBy(How = How.Id, Using = "ButtonId")]
public IWebElement submitButton { get; set; }
// Presumed to be in Helpers class
public void ScrollToElementOnPage(IWrapsElement element)
{
var js = driver as IJavaScriptExecutor;
return js.ExecuteScript("arguments[0].scrollIntoView(true);",element.WrappedElement);
}
Helpers _helpers = new Helpers();
Page _page = new Page();
_helpers.ScrollToElementOnPage((IWrapsElement)_page.submitButton);
试试这个
// Presumed to be in Page class
[FindsBy(How = How.Id, Using = "ButtonId")]
public IWebElement submitButton { get; set; }
// Presumed to be in Helpers class
public void ScrollToElementOnPage(IWrapsElement element)
{
var js = driver as IJavaScriptExecutor;
return js.ExecuteScript("arguments[0].scrollIntoView(true);",element.WrappedElement);
}
Helpers _helpers = new Helpers();
Page _page = new Page();
_helpers.ScrollToElementOnPage((IWrapsElement)_page.submitButton);