- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一些经常使用的自定义查找方法,而不是 WebDriver.findElement 和 WebDriver.findElements。这些方法采用包含“按”定位器和正则表达式的自定义定位器对象,并返回与“按”定位器匹配且其文本与正则表达式匹配的一个或多个 WebElement。
这些在很多场合都非常有用,我想为 WebElement.findElement 和 WebElement.findElements 提供相同的功能。我可以创建一个新类来实现 WebElement 接口(interface),并且还包含这些新的查找方法,但我很困惑这是否真的有效。毕竟,当我运行 FireFox 时,驱动程序返回的元素是 FireFoxWebElements。当我与 IE 运行时,它们是 InternetExplorerElements。这两个都实现了 WebElement,但它们与我实现 WebElement 的自定义类完全无关,对吗?它们不会有这种额外的功能,并且它们不能被视为我的自定义类,因为它们......不是。
由于 WebDriver.findElement(s) 是 WebElements 的唯一“源”,也就是说,它是 WebElements 到达我的代码的基本方式,因此我可以更改我的自定义 findElement(s) 方法(调用 WebDriver.findElement(s) 方法)吗? findElement(s),最终)为任何包含我的特殊 element.find 方法的 WebElement 返回一个新的自定义包装器?这样,到达我的代码中的所有 WebElement 都将是这些带有我想要的额外查找方法的自定义元素。正确的?如果是这样,这样的包装类会是什么样子?
最佳答案
更简洁的方法是将 By
进行子类化。类,并为 By.findElement()
提供自定义实现和By.findElements()
。该架构正是针对这种类型的可扩展性而设计的。这个By
然后子类可以作为参数传递给 findElement()
和findElements()
两者的方法WebDriver
和WebElement
没有问题。
或者,您可以重新调整自定义查找方法的用途。如果他们目前采取 WebDriver
对象,考虑将其更改为 SearchContext
参数,这是 WebDriver
的接口(interface)和WebElement
延长。 SearchContext
是 findElement()
的实际来源和findElements()
方法。
关于selenium - 使用新的 find 方法扩展 WebElement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13052553/
ArrayList corousalItems= new ArrayList<>(); List listText= driver.findElements(By.cssSelector("Cor
我正在学习 Selenium,我有一个问题,假设我们有以下内容: 我可以使用带有 的 Css 选择器来选择包装元素列表.wrapper .所以,假设我有这些元素,我该如何选
我正在使用 Selenium WebDriver 和 Java。我正在尝试创建一个循环访问 WebElements 列表的方法,以返回包含文本“Ooga Booga”的第一个 WebElement,或
我正在尝试使用 Selenium 获取另一个提取元素内的元素。但我得到了意想不到的结果。例如,下面的代码在循环中返回相同的“数据时间”和推文时间。请注意“data-item-id”如何不同,但“dat
对源代码进行了简短的扫描,不确定最佳做法是什么。 例如,假设我有一个页面对象“DummyPage”,它有两个面板元素TopPanel 和BottomPanel。每个面板都有一些元素,这些元素由 Top
List fields = (List) driver.findElement(By.xpath("//input[@type='text']")); System.out.println(field
我想在 List 中找到 WebElement通过文本。我的方法有这样的参数:List webElements, String text .对于匹配文本,我更喜欢使用 javaslang图书馆。所以,
如何比较两个 selenium WebElements 看它们是否相同? 首先,我检索了 input_fields 和 first_input 元素的列表: self.input_fields = d
我正在使用 Appium,我想打印列表中元素的名称。我正在使用以下代码 List list = getDriver().findElementsByXPath(getLocator(Locators.
任何人都可以帮助我了解如何使用这两个函数来获取任何 CSS 属性的值。 最佳答案 如果有特定的标签如下 driver.getElement(By.tagName("img")).getAttribu
我正在从 facebook 获取日期网络元素,并使用下面的代码循环它。 public class select_facebook { public static void main(Strin
所以我尝试使用 XPath 从一个 webelement 到另一个 webelement。这就是 webelement 所在的路径,我通过使用“findElementsByClassName”找到它。
我想在 YouTube 评论页面上按此顺序单击这三个不同的网络元素 showmorebutton、viewrepliesbutton、readmorebutton(例如 https://www.you
如何在webelement列表中存储webelement?我已经为 webelement 创建列表并在 add 方法中传递 webelement obj,但系统显示空异常。Java代码:List el
我已经弄清楚如何使用这篇 Stack overflow 帖子在 python 中使用 Selenium 查找元素的子元素。 Selenium Get WebElement inside a WebEl
我创建了这个测试脚本来测试网站。问题是,有时我可以单击编辑按钮,但有时我会收到同一按钮的 NoElementFoundException 异常。我在论坛上搜索了相同类型的问题,并按照建议更改了代码,但
我有个问题。 是什么让 FirefoxDriver 能够找到 WebElements 并在 java 代码中单击它们,但是当使用 HtmlUnitDriver 运行相同的代码时,找不到相同的 WebE
我编写了一个java类(CustomerHistoryMapping),其中包含一个HashMap(String,WebElement),如下面的代码(代码的第一部分)我的总体目标是能够使用给定的 W
我对 Selenium 测试还很陌生,所以如果我的问题听起来很简单,我提前道歉。 我正在使用 Java 和 Selenium 编写测试。有时我需要单击 WebElement(例如按钮)。如果我使用 e
Page page = new Page(); page.populateProductList( driver.findElement( By.xpath("//div[@id='my_25_pro
我是一名优秀的程序员,十分优秀!