扩展selenium2功能PageFactory

时间:2011-07-21 13:30:58

标签: c# reflection selenium-webdriver castle-dynamicproxy

我想为selenium2 PageFactory添加一项功能。我想要的是FindsByAttributeSelectedElement兼容。 我发现如果我将SelectElement类型的属性添加到IWrapsElement并在ProxiedWebElementInterceptor中实现它的问题。当调用该字段的方法SetValue时,他说“类型为'Castle.Proxies.INewsWrapsElementProxy'的对象无法转换为'OpenQA.Selenium.Support.UI.SelectElement'类型。” 有人可以解释一下城堡代理的机制,它会返回所需的价值吗?

1 个答案:

答案 0 :(得分: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);