我想知道如何使用@FindBy 注释在 span 元素中获取“Apple”文本。
那是html代码:
<span class="ui-cell-data">Apple</span>
我尝试了类似的方法:
@FindBy(className = "ui-cell-data:Samsung")
WebElement customerName;
但它没有用!
您可以尝试使用下面说明的 xpath
@FindBy(xpath = "//span[@class = 'ui-cell-data']")
private WebElement element;
根据HTML
您分享的内容,您可能/可能无法在 span 元素中获取Apple文本:
@FindBy(className = "ui-cell-data")
WebElement customerName;
您的代码几乎是完美的,但className
as中的尾随部分:Samsung
是不必要的。
但是,再次查看class
属性,预计会有更多<span>
标签具有相同的class
. 因此,为了唯一标识预期WebElement
,我们需要引用父节点并跟随其后代到达该特定节点。
最后,使用给定HTML
的以下代码块将更加清晰:
选择器:
@FindBy(cssSelector = "span.ui-cell-data")
WebElement customerName;
路径:
@FindBy(xpath = "//span[@class='ui-cell-data']")
WebElement customerName;
您可以@FindBys
像链式元素查找一样使用
@FindBys({@FindBy(className = "ui-cell-data")})
private WebElement element;
或尝试使用以下:
@FindBy(xpath = "//*[@class = 'ui-cell-data']")
private WebElement element;
或者
@FindBy(css = ".ui-cell-data")
private WebElement element;
希望它能解决您的问题。