我有这个HTML输出(Firebug):
<a class="tab-toolbar-button tab-widget tab-disabled" title = "Revert All">
<span clas = "tab-toolbar-button-icon tab-icon-revert"></span>
</a>
但升级服务器和新界面后,我有这个:
<div class="tabToolbarButton tab-widget disabled">
<span class="tabToolbarButtonImg tab-icon-revert"></span>
<span class="tabToolbarButtonText">Revert</span>
</div>
我的Java代码是:
private static void doResetFilter() throws Exception {
waitForLoadingSpinner();
element =wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//a[contains(@class, 'tab-toolbar-button')][@title='Revert All']")));
boolean isEnabled = element.getAttribute("class").contains("tab-enabled");
if (isEnabled) {
log("reset filter");
element.click();
}
else {
log("filter reset not needed");
}
}
现在我需要修改我的Java代码以与新版本兼容。因为我是Selenium和Java的新手(我继承了这段代码),如何用文本更改部分?
我试过这样但仍然没有结果。有人可以帮忙吗?
private static void doResetFilter() throws Exception {
waitForLoadingSpinner();
element = wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//span[@class=’Revert’]")));
boolean isEnabled = element.getAttribute("class").contains("enabled");
if (isEnabled) {
log("reset filter");
element.click();
}
else {
log("filter reset not needed");
}
}
先谢谢!
答案 0 :(得分:0)
您可以找到div
元素,其中@class
所需的span
孩子带有所需的文字:
//div[contains(@class, 'tabToolbarButton') and span = 'Revert']
答案 1 :(得分:0)
如果你想要的文本是&#34;还原&#34;使用以下代码:
element = wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("div.tabToolbarButton.tab-widget.disabled>span.tabToolbarButtonText")));
还有一件事,在你的新html中,没有包含
的跨度类enabled
一个div包含已禁用。
所以让我知道这有帮助与否,或者你需要其他东西。