什么是Java Webdriver @Findby的等效C#版本?

Cyn*_*ker 6 c# pageobjects selenium-webdriver

我正在从Java环境迁移到.NET,需要使用页面对象模型编写Webdriver测试.

在Java中,我将使用以下注释:

@FindBy(linkText = "More details")
WebElement moreDetailsButton;
Run Code Online (Sandbox Code Playgroud)

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

谢谢Steve

Arr*_*ran 7

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

您正在寻找FindsBy:

[FindsBy(How = How.LinkText, Using = "More details")]
private IWebElement moreDetailsButton;
Run Code Online (Sandbox Code Playgroud)

至于PageFactory.initElements,是的,它在.NET中是一个非常类似的东西,通常在Page Object的构造函数中调用:

public class LoginPage
{
    private IWebDriver _driver;

    public LoginPage(IWebDriver driver)
    {
        _driver = driver;
        PageFactory.InitElements(_driver);
    }
}
Run Code Online (Sandbox Code Playgroud)

请注意,Selenium项目完全是开源的.您可以在此处轻松查看Page Objects'helper'类的源代码.