【问题标题】:Expanding selenium2 functionality PageFactory扩展 selenium2 功能 PageFactory
【发布时间】:2011-10-10 05:59:18
【问题描述】:
我想为 selenium2 PageFactory 添加一个功能。我想要的是FindsByAttribute 与SelectedElement 兼容。
我发现的问题是,如果我将SelectElement 类型的属性添加到IWrapsElement 并在ProxiedWebElementInterceptor 中实现它。当调用该字段的方法SetValue 时,他说“'Castle.Proxies.INewsWrapsElementProxy' 类型的对象无法转换为'OpenQA.Selenium.Support.UI.SelectElement' 类型。”
有人能解释一下 Castle 代理返回所需值的机制吗?
【问题讨论】:
标签:
c#
reflection
selenium-webdriver
castle-dynamicproxy
【解决方案1】:
试试这个
// 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);