例如,我有一个element1,在我找到element2之后可以找到它,如下所示:
driver.findElement(By.xpath("//xpath2")).findElement(By.xpath("//xpath1")).click();我想使用PageObjectModel和注释@FindBy,如下所示:
@FindBy(xpath = "//xpath1")
private WebElement element1;
@FindBy(xpath = "//xpath2")
private WebElement element2;问题是:我不知道如何重写代码,这是行不通的:
element2.element1.click();发布于 2013-08-06 07:22:15
@FindBy(xpath = ".//xpath1")
private WebElement element1;
@FindBy(xpath = ".//xpath2//xpath1")
private WebElement element2;使用
element2.click();发布于 2013-08-06 07:01:40
你有几个解决方案。
首先,如果要使用2 FindBys,则如下所示:
@FindBys({@FindBy(xpath = "//xpath2"),
@FindBy(xpath = "//xpath1")})第二个是将第二个xpath代码放入一个显式的findElement函数中。
element1.findElement(By.xpath("//xpath1")).click();最后,您可能可以将第一个xpath和第二个xpath组合成单个xpath。
@FindBy(xpath="//xpath2//xpath1")但是,我想您可能会问这个问题,因为您有一个元素,您喜欢在其中找到许多其他元素。不幸的是,严格的@FindBy无法做到这一点。
https://stackoverflow.com/questions/18072583
复制相似问题