我正在从Java环境转移到.NET,并需要使用页面对象模型编写Webdriver测试。什么是Java Webdriver @Findby的等效C#版本?
在Java中我会使用以下注释:
@FindBy(linkText = "More details")
WebElement moreDetailsButton;
请会有人能告诉我如何定义使用C#中WebElement?另外,PageFactory.initElements是以相同的方式使用的吗?
感谢 史蒂夫
我正在从Java环境转移到.NET,并需要使用页面对象模型编写Webdriver测试。什么是Java Webdriver @Findby的等效C#版本?
在Java中我会使用以下注释:
@FindBy(linkText = "More details")
WebElement moreDetailsButton;
请会有人能告诉我如何定义使用C#中WebElement?另外,PageFactory.initElements是以相同的方式使用的吗?
感谢 史蒂夫
是的,有一个直接的翻译。
您正在寻找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的来源。
感谢您的回答。我刚刚设法回答我自己的问题,同时在这里[链接](http://selenium.googlecode.com/git/docs/api/dotnet/index.html) – CynicalBiker
这已被回答之前,http://stackoverflow.com/questions/12592455/findby-annotation-used-to-find-a-list-of-webelements –
@ Karl-JohanSjögren,不完全,这个问题是特别是关于'IWebElement'的'List',而且问题已经很老了,现在已经被弃用了 - 这个属性在.NET API中有直接的翻译。 – Arran
那么,如果您阅读的内容多于该问题的第一段,则可以在第一个答案中看到FindBy的解决方案。 –