我正在使用Selenium Page工厂,并且我想对其进行某些扩展,但是由于它们是密封的,所以不能,因此我想编写自己的自定义逻辑。
问题:PageFactory.InitElements如何工作,以便所有属性在使用它们时(而不是在调用此方法时)加载它们的值。
所以,用一个例子来解释
//// Button on page load
[FindsBy(How = How.CssSelector, Using = "#lst-ib")]
public IWebElement Btn;
//// Button redirecting to Page 2
[FindsBy(How = How.CssSelector, Using = "#lst-ib")]
public IWebElement LinkBtn;
////Button on second page
[FindsBy(How=How.CssSelector, Using = "#rso > div:nth-child(1) > div > div:nth-child(1) > div > div > h3 > a")]
public IWebElement NewBtn;
因此,其页面工厂的美妙之处在于,所有元素都已加载,但在使用时它们会转换为Webelements,因为如果所有属性在初始化时都分配了值,NewBtn属性将始终失败,如第2页所示。
因此,他们可能会使用什么概念来初始化属性,以便在使用时分配它们,而不是在运行时分配它们,因此任何虚拟代码都将非常有用,希望您理解
扬帆大鱼
相关分类