2011-07-21 2 views
1

Je souhaite ajouter une fonctionnalité à selenium2 PageFactory. Ce que je veux, c'est que FindsByAttribute était compatible avec SelectedElement. Le problème que j'ai découvert que si j'ajoute la propriété avec SelectElement tapez IWrapsElement et l'implémenter dans ProxiedWebElementInterceptor. Lorsque la méthode SetValue du fichier est appelée, il dit "L'objet de type" Castle.Proxies.INewsWrapsElementProxy "ne peut pas être converti en type" OpenQA.Selenium.Support.UI.SelectElement "." Quelqu'un pourrait-il expliquer le mécanisme du proxy du château qui renvoie la valeur nécessaire?Expansion de la fonctionnalité selenium2 PageFactory

Répondre

1

Essayez cette

// 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);