例如,我找到了element2后可以找到的element1,如下所示:
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();
答案 0 :(得分:0)
嗯,你有几个解决方案。
第一个,如果你想使用2个FindBys:
@FindBys({@FindBy(xpath = "//xpath2"),
@FindBy(xpath = "//xpath1")})
第二个是将第二个xpath代码放在显式的findElement函数
中element1.findElement(By.xpath("//xpath1")).click();
最后,您可以将第一个xpath和第二个路径合并为一个xpath
@FindBy(xpath="//xpath2//xpath1")
然而,我想你可能会问这个,因为你有一个单元素,你想在其中发现很多其他元素。不幸的是,严格的@FindBy是不可能的。
答案 1 :(得分:0)
@FindBy(xpath = ".//xpath1")
private WebElement element1;
@FindBy(xpath = ".//xpath2//xpath1")
private WebElement element2;
使用
element2.click();