如何在 Selenium 中为跨度文本使用 @FindBy 注释?
How to use @FindBy annotation in Selenium for span text?
我想知道如何获取带@FindBy 注释的 span 元素中的 "Apple" 文本。
那就是 html 代码:
<span class="ui-cell-data">Apple</span>
我试过类似的东西:
@FindBy(className = "ui-cell-data:Samsung")
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;
希望它能解决您的问题。
您可以尝试使用下面所述的 xpath
@FindBy(xpath = "//span[@class = 'ui-cell-data']")
private WebElement element;
根据您分享的 HTML
,您 may/maynot 已经能够在 span 元素中获得 Apple 文本:
@FindBy(className = "ui-cell-data")
WebElement customerName;
您的代码近乎完美,但 className
中的尾部部分 :Samsung
是不必要的。
但是,再次查看 class
属性,预计会有更多 <span>
标签具有相同的 class
.因此,为了唯一地标识预期的 WebElement
我们需要引用父节点并跟随其后代到达该特定节点。
最后,使用给定的 HTML
,以下代码块将更加清晰:
cssSelector:
@FindBy(cssSelector = "span.ui-cell-data")
WebElement customerName;
xpath:
@FindBy(xpath = "//span[@class='ui-cell-data']")
WebElement customerName;
我想知道如何获取带@FindBy 注释的 span 元素中的 "Apple" 文本。
那就是 html 代码:
<span class="ui-cell-data">Apple</span>
我试过类似的东西:
@FindBy(className = "ui-cell-data:Samsung")
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;
希望它能解决您的问题。
您可以尝试使用下面所述的 xpath
@FindBy(xpath = "//span[@class = 'ui-cell-data']")
private WebElement element;
根据您分享的 HTML
,您 may/maynot 已经能够在 span 元素中获得 Apple 文本:
@FindBy(className = "ui-cell-data")
WebElement customerName;
您的代码近乎完美,但 className
中的尾部部分 :Samsung
是不必要的。
但是,再次查看 class
属性,预计会有更多 <span>
标签具有相同的 class
.因此,为了唯一地标识预期的 WebElement
我们需要引用父节点并跟随其后代到达该特定节点。
最后,使用给定的 HTML
,以下代码块将更加清晰:
cssSelector:
@FindBy(cssSelector = "span.ui-cell-data") WebElement customerName;
xpath:
@FindBy(xpath = "//span[@class='ui-cell-data']") WebElement customerName;