我想知道我可以做些什么来获得带有@FindBy注解的span元素中的“Apple”文本。这是html代码:
<span class="ui-cell-data">Apple</span>
我尝试了类似的方法:
@FindBy(className = "ui-cell-data:Samsung") WebElement customerName;
但没有成功!
slsn1g291#
根据您共享的HTML,您可能/可能无法使用以下命令获取span元素中的Apple文本:
HTML
@FindBy(className = "ui-cell-data") WebElement customerName;
您的代码近乎完美,但是className中的尾随部分**:Samsung是不必要的。但是,再次查看class属性,预期还有几个<span>标签将具有相同的class。因此,为了唯一标识预期的WebElement**,我们需要引用父节点并跟随其后代到达该特定节点。最后,使用给定的HTML,下面的代码块将更加简洁:
className
:Samsung
class
<span>
WebElement
@FindBy(css = "span.ui-cell-data") WebElement customerName;
@FindBy(xpath = "//span[@class='ui-cell-data']") WebElement customerName;
vyswwuz22#
您可以尝试使用下面的xpath
@FindBy(xpath = "//span[@class = 'ui-cell-data']") private WebElement element;
zsohkypk3#
可以像使用链式元素查找一样使用@FindBys
@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;
希望这能解决你的问题。
3条答案
按热度按时间slsn1g291#
根据您共享的
HTML
,您可能/可能无法使用以下命令获取span元素中的Apple文本:您的代码近乎完美,但是
className
中的尾随部分**:Samsung
是不必要的。但是,再次查看
class
属性,预期还有几个<span>
标签将具有相同的class
。因此,为了唯一标识预期的WebElement
**,我们需要引用父节点并跟随其后代到达该特定节点。最后,使用给定的
HTML
,下面的代码块将更加简洁:vyswwuz22#
您可以尝试使用下面的xpath
zsohkypk3#
可以像使用链式元素查找一样使用
@FindBys
或尝试使用以下:
或
希望这能解决你的问题。