2013-11-04 98 views
6

我正在从Java环境转移到.NET,并需要使用页面对象模型编写Webdriver测试。什么是Java Webdriver @Findby的等效C#版本?

在Java中我会使用以下注释:

@FindBy(linkText = "More details") 
WebElement moreDetailsButton; 

请会有人能告诉我如何定义使用C#中WebElement?另外,PageFactory.initElements是以相同的方式使用的吗?

感谢 史蒂夫

+0

这已被回答之前,http://stackoverflow.com/questions/12592455/findby-annotation-used-to-find-a-list-of-webelements –

+2

@ Karl-JohanSjögren,不完全,这个问题是特别是关于'IWebElement'的'List',而且问题已经很老了,现在已经被弃用了 - 这个属性在.NET API中有直接的翻译。 – Arran

+2

那么,如果您阅读的内容多于该问题的第一段,则可以在第一个答案中看到FindBy的解决方案。 –

回答

7

是的,有一个直接的翻译。

您正在寻找FindsBy

[FindsBy(How = How.LinkText, Using = "More details")] 
private IWebElement moreDetailsButton; 

对于PageFactory.initElements,是的,它在.NET非常类似的事情,通常堪称页面对象的构造函数:

public class LoginPage 
{ 
    private IWebDriver _driver; 

    public LoginPage(IWebDriver driver) 
    { 
     _driver = driver; 
     PageFactory.InitElements(_driver); 
    } 
} 

请注意,Selenium项目完全是开源的。你可以很容易地看到页面对象的帮助类here的来源。

+0

感谢您的回答。我刚刚设法回答我自己的问题,同时在这里[链接](http://selenium.googlecode.com/git/docs/api/dotnet/index.html) – CynicalBiker

相关问题