我正在从 Java 环境迁移到 .NET,并且需要使用页面对象模型编写 Webdriver 测试。
在 Java 中,我将使用以下注释:
@FindBy(linkText = "More details")
WebElement moreDetailsButton;
请有人能告诉我如何使用 C# 定义 WebElement 吗?另外,PageFactory.initElements 的使用方式是否相同?
谢谢史蒂夫
我正在从 Java 环境迁移到 .NET,并且需要使用页面对象模型编写 Webdriver 测试。
在 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 中是一个非常相似的东西,通常在 Page Object 的构造函数中调用:
public class LoginPage
{
private IWebDriver _driver;
public LoginPage(IWebDriver driver)
{
_driver = driver;
PageFactory.InitElements(_driver);
}
}
请注意,Selenium 项目是完全开源的。您可以在此处轻松查看 Page Objects 'helper' 类的来源。