我正在尝试使用页面工厂@FindBy
注释在Selenium
Webdriver中编写页面对象。该页面对象用于边栏,并且以这种方式初始化了包含该页面对象需要与之交互的所有元素的父WebElement:
@FindBy (xpath = "//div[contains(@class,'yui3-accordion-panel-content') and child::div[.='Sidebar']]")
WebElement sidebar;
然后,我想要相对于此sidebar
元素的搜索输入。有没有办法做这个参考sidebar
元素?我可以将整个路径复制并粘贴到开头:
@FindBy (xpath = "//div[contains(@class,'yui3-accordion-panel-content') and child::div[.='Sidebar']]//input[@id='search']")
但是我宁愿使它相对于第一个元素。这样有可能吗?
@FindBy (parent = "sidebar", xpath = ".//input[@id='search']")
在对@FindBy注释selenium文档是有点欠缺......
回答我自己的问题。
答案是实现一个ElementLocatorFactory,该元素允许您提供搜索上下文(含义是驱动程序或WebElement)。
public class SearchContextElementLocatorFactory
implements ElementLocatorFactory {
private final SearchContext context;
public SearchContextElementLocatorFactory(SearchContext context) {
this.context = context;
}
@Override
public ElementLocator createLocator(Field field) {
return new DefaultElementLocator(context, field);
}
}
然后,在实例化页面对象时,使用此定位器工厂。
WebElement parent = driver.findElement(By.xpath("//div[contains(@class,'yui3-accordion-panel-content') and child::div[.='Sidebar']]"));
SearchContextElementLocatorFactory elementLocatorFactory = new SearchContextElementLocatorFactory(parent);
PageFactory.initElements(elementLocatorFactory, this);
现在您的@FindBy
注释将相对于parent
。例如,获取主侧边栏WebElement
:
@FindBy(xpath = ".")
WebElement sideBar;
问题内容: 我正在尝试使用页面工厂注释在Selenium Webdriver中编写页面对象。该页面对象用于边栏,并且以这种方式初始化了包含该页面对象需要与之交互的所有元素的父WebElement: 然后,我想要相对于此元素的搜索输入。有没有办法做这个参考元素?我可以将整个路径复制并粘贴到开头: 但是我宁愿使它相对于第一个元素。这样有可能吗? 在对@FindBy注释selenium文档是有点欠缺..
在XSL analyze-string->Matching-Substring into multiple variables中,它已经 但我的问题是如何在示例中使用它来连接regex-group(1)和regex路径“/fault/informations/restriction2”之外的其他元素。 所以简单地输入XML: 和输出在一个元素中 无法将项类型与所需类型匹配错误位置:xsl:styl
我有一个搜索结果页面,其中包含许多作为搜索结果产生的产品项。我可以得到产品项目的清单。但是有产品细节,如价格、折扣、运输价格,作为子元素在这些网络中。如何使用页面对象工厂模型通过使用@FindBy注释自动获取这些子元素的值。 目前,我不知道如何通过在findElement(by)函数中显式提供父WebElement的上下文而不是POF的自动机制来显式地获得它们。问题是如何使上下文成为PageObj
本文向大家介绍Linux 相对路径和绝对路径的使用,包括了Linux 相对路径和绝对路径的使用的使用技巧和注意事项,需要的朋友参考一下 01. 概述 绝对路径和相对路径在shell环境中经常遇到,各有用处。有时候相对路径比较方便,有时候绝对路径比较方便。 02. 绝对路径(Absolute Pathname) 绝对路径必定由**/**开头 绝对路径是为档案/文件的所在位置做指向 在任何时候,都可以
问题内容: 我正在尝试使用HTML和CSS创建水平100%堆叠的条形图。我想根据背景颜色和百分比宽度创建条形,具体取决于要绘制的值。我还希望有一条网格线来标记沿图的任意位置。 在实验中,我已经通过指定CSS属性来将条形图水平堆叠。但是,我想避免这种情况,因为它确实以混乱的方式使布局混乱。此外,当条形图浮动时,网格线似乎不太好用。 我认为CSS定位应该可以处理此问题,但我还不知道该怎么做。我希望能够
问题内容: 我将iText用于PDF生成,并使用以下代码创建锚点: 该对象类型的并且是通往我想要的链接文件。 当我尝试使用相对路径时,链接不起作用。例如,虽然工作正常,但是当我尝试相对路径(例如未形成链接)时,尽管我的PDF文档和XML文件都位于名为的同一文件夹中。 问题答案: 如果您遇到这种情况: 而且,如果您在中创建了一个路径作为参考,那么您将告诉PDF可以在以下位置找到xml文件: 我看到两