[英]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.