文本为“新建”的按钮的 Xpath
2022-09-01 11:22:07
在我们的应用程序中,几乎在每个屏幕中,我们都有一个带有文本“新建”的按钮,这是其中一个按钮的html源代码:
<button id="defaultOverviewTable:j_id54" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only ui-state-hover" type="submit" name="defaultOverviewTable:j_id54" role="button" aria-disabled="false">
<span class="ui-button-text ui-c">New</span>
</button>
我尝试使用以下语句单击按钮:
driver.findElement(By.xpath("//button[[@type, 'submit'] and [text()='New']]")).click();
但这不起作用
org.openqa.selenium.InvalidSelectorException: The given selector //button[[@type= 'submit'] and [text()='New']] is either invalid or does not result in a WebElement.
目前,我正在使用以下代码单击按钮:
List<WebElement> allButt = driver.findElements(By.tagName("button"));
for (WebElement w : allButt)
{
if (w.getText().matches("New"))
{
w.click();
break;
}
}
因为我在页面中有近150个按钮。还有其他方法吗?