2

我想知道如何使用@FindBy 注释在 span 元素中获取“Ap​​ple”文本。

那是html代码:

<span class="ui-cell-data">Apple</span>

我尝试了类似的方法:

@FindBy(className = "ui-cell-data:Samsung")
WebElement customerName;

但它没有用!

4

3 回答 3

2

您可以尝试使用下面说明的 xpath

 @FindBy(xpath = "//span[@class = 'ui-cell-data']") 
 private WebElement element;
于 2017-12-18T06:08:49.557 回答
2

根据HTML您分享的内容,您可能/可能无法在 span 元素中获取Apple文本:

@FindBy(className = "ui-cell-data")
WebElement customerName;

您的代码几乎是完美的,但classNameas中的尾随部分:Samsung是不必要的。

但是,再次查看class属性,预计会有更多<span>标签具有相同的class. 因此,为了唯一标识预期WebElement,我们需要引用父节点并跟随其后代到达该特定节点。

最后,使用给定HTML的以下代码块将更加清晰:

  • 选择器

    @FindBy(cssSelector = "span.ui-cell-data")
    WebElement customerName;
    
  • 路径

    @FindBy(xpath = "//span[@class='ui-cell-data']")
    WebElement customerName;
    
于 2017-12-18T06:35:47.693 回答
1

您可以@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; 

希望它能解决您的问题。

于 2017-12-18T03:39:15.573 回答