栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在Selenium C#中使用PageFactory / FindsBy时如何初始化SelectElements?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在Selenium C#中使用PageFactory / FindsBy时如何初始化SelectElements?

首先,.NET

PageFactory
实现中没有“内置等待”
。您可以在调用中轻松指定一个
InitElements
(稍后对此进行详细说明)。目前,最适合您的选择是您的选择3,尽管我不会公开该
IWebElement
成员。我会做到的
private
,因为
PageFactory
可以像枚举公共成员一样轻松地枚举私有成员。因此您的页面对象将如下所示:

[FindsBy(How = How.Id, Using = "MonthDropdown")]private IWebElement dropDown;public SelectElement MonthDropdownElement{    get { return new SelectElement(dropdown); }}

IWebElement
在需要时如何获得实际值?自从
SelectElement
实现以来
IWrappedElement
WrappedElement
如果您需要访问
IWebElement
接口提供的元素的方法和属性,则可以简单地调用属性。

.NET绑定的最新版本已将重组

PageFactory
为更可扩展。要添加所需的“内置等待”,可以执行以下操作:

// Assumes you have a page object of type MyPage.// Note the default timeout for RetryingElementLocator is// 5 seconds, if unspecified.// The generic version of this pre looks like this:// MyPage page = PageFactory.InitElements<MyPage>(new RetryingElementLocator(driver), TimeSpan.FromSeconds(10));MyPage page = new MyPage();PageFactory.InitElements(page, new RetryingElementLocator(driver, TimeSpan.FromSeconds(10)));

此外,如果您 确实
需要自定义事物的工作方式,那么始终欢迎您实施

IPageObjectMemberDecorator
,它使您可以完全自定义枚举属性的方式以及将值设置为用这些属性修饰的属性或字段的方式。的(非泛型)重载之一
PageFactory.InitElements
采用对象实现的实例
IPageObjectMemberDecorator

我将撇开严格定义的页面对象模式的正确实现,不要在每个页面对象之外公开任何WebDriver对象。否则,您所实现的只是一个“页面包装器”,这是一种非常有效的方法,而不是所谓的“页面对象”。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/392025.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号