当前位置: 首页 > 知识库问答 >
问题:

使用新的查找方法扩展WebElement

上官兴昌
2023-03-14

我有一些自定义的find方法,我经常使用它们来代替WebDriver。findElement和WebDriver。findElements。这些方法接受一个自定义定位器对象,该对象包含By定位器和正则表达式,并返回与By定位器匹配且其文本与正则表达式匹配的一个或多个WebElement。

这些在很多场合都非常有用,我想为WebElement提供同样的功能。findElement和WebElement。findElements。我可以创建一个新类来实现WebElement接口,并且还包含这些新的find方法,但是我不知道这是否真的有效。毕竟,当我运行FireFox时,驱动程序返回的元素是FireFoxWebElements。当我遇到IE时,它们是InternetExplorererelation。这两个都实现了WebElement,但它们与实现WebElement的自定义类完全无关,对吗?它们没有这个额外的功能,也不能被当作我的自定义类,因为它们。。。不是。

自从WebDriver。findElement是WebElements的唯一“源”,也就是说,它是WebElements进入我的代码的基本方式,然后我是否可以更改我的自定义findElement方法(最终调用WebDriver.findElement)以返回包含我的特殊元素的任何WebElement的新自定义包装器。找到方法?这样,我代码中的所有WebElement都将是这些自定义元素,带有我想要的额外find方法。正当如果是这样,这样的包装器类会是什么样子?

共有1个答案

郝杰
2023-03-14

一种更干净的方法是将子类化为By类,并为提供自定义实现。findElement()By。findElements()。该体系结构正是为这种类型的可扩展性而设计的。然后,这个By子类可以作为参数传递给WebDriverWebElementfindElement()和findElements()方法,没有问题。

或者,您可以重新调整自定义查找方法的用途。如果他们当前采用了<代码> WebDriver < /Cord>对象,考虑将其更改为“<代码>搜索上下文< /代码>参数”,这是<>代码> WebDriver < /C> >和<代码> WebList< <代码> >的接口。code>SearchContextfindElement()findElements()方法的实际源。

 类似资料:
  • 问题内容: 我在掌握某些内容时遇到了一些问题-我可能正在处理完全错误的问题。 我正在尝试创建一个扩展ArrayList的类,但是具有一些增加功能的方法(至少对于我正在开发的程序而言)。 方法之一是findById(intid),它在每个ArrayList对象中搜索特定的id匹配项。到目前为止,它仍然有效,但它不会让我做for (Item i : this) { i.getId(); } 我不明白为

  • 本文向大家介绍dynamics-crm 使用扩展获取查找属性,包括了dynamics-crm 使用扩展获取查找属性的使用技巧和注意事项,需要的朋友参考一下 示例 如果获取单个记录并且该记录具有查找,则还可以使用expand选项获取查找值的值。这减少了您需要对API进行的调用次数。 该示例获取所有帐户和主要联系人的姓氏:            

  • 本文向大家介绍C#中的扩展方法,包括了C#中的扩展方法的使用技巧和注意事项,需要的朋友参考一下 扩展方法是静态方法,就像它们是扩展类型的实例方法一样被调用。使用扩展方法,您可以将方法添加到现有类型中,而无需创建新的派生类型,重新编译或修改原始类型。 以下是我们创建的扩展方法。 让我们看一个使用扩展方法的例子。 示例 输出结果

  • 本文向大家介绍Yii安装与使用Excel扩展的方法,包括了Yii安装与使用Excel扩展的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Yii安装与使用Excel扩展的方法。分享给大家供大家参考,具体如下: 1.下载EExcelBehavior到项目扩展目录下 2.下载phpexcl到扩展目录 3.控制器调用: 4.具体用法: 更多关于Yii相关内容感兴趣的读者可查看本站专题:《Yi

  • 本文向大家介绍PHP使用SOAP扩展实现WebService的方法,包括了PHP使用SOAP扩展实现WebService的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP使用SOAP扩展实现WebService的方法。分享给大家供大家参考,具体如下: 最近在一个PHP项目中对接外部接口涉及到WebService,搜索引擎上相关文章不是很多,找到的大都是引用一个号称很强大的开源软件

  • 本文向大家介绍使用 iisext.vbs 禁用 Web 服务扩展的方法,包括了使用 iisext.vbs 禁用 Web 服务扩展的方法的使用技巧和注意事项,需要的朋友参考一下 应用到: Windows Server 2003, Windows Server 2003 R2, Windows Server 2003 with SP1 可以使用命令行脚本 iisext.vbs(存储于 systemro