繁体   English   中英

FindBy避免完整的xpath

[英]FindBy avoiding full xpath

在我的课程中定义了以下WebElement

 @FindBy(xpath = ".//div[contains(@id, 'myform')]")
 private WebElement form;

 @FindBy(xpath = ".//div[contains(@id, 'myform')]"+ "/div/div/div/fieldset/div/div/div/div/div/div/div/input[contains(@id, 'name')]")
 private  WebElement name;

我能够找到名称WebElement并执行sendKeys。 但是,此“ / div / div / div / div / fieldset / div / div / div / div / div / div / div / div /”看起来不太好。 我怎样才能避免它并仍然可以找到我的元素?

采用

.//div[contains(@id, 'myform')]//fieldset//input[contains(@id, 'name')]

如果您具有该元素的id ,则可以使用它直接找到该元素,例如-

@FindBy(id= "name")

尽管您也可以尝试以这种方式使用xpath

@FindBy(xpath = "//input[contains(@id, 'name')]") 

要么

@FindBy(xpath = "//div[contains(@id, 'myform')]//input[contains(@id, 'name')]") 

如果可用,最好使用ID。 因此,使用id的声明将是:

@FindBy(id = "name");

但是,如果您想使用x-path,请以最短格式尝试:

@FindBy(xpath = "//input[@id ='name']");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM