首页 > 解决方案 > 元素不可见——XPath 只查找样式

问题描述

我正在尝试使用 XPath 定位器找到以下按钮:

//button[contains(text(), 'Save Request')]

但是,当我这样做时,我收到一个错误:

Element is not Visible

当我尝试使用 Chropath 输入此 XPath 时,它似乎在样式 XPath 属性之后的“1”上突出显示。我将如何解决这个问题?

在此处输入图像描述

我尝试添加等待直到元素可见但仍然遇到相同的问题:

public CreatePartRequestModalPage saveRequest() {
    waitForElement(By.xpath(SAVE_REQUEST_XPATH), State.ELEMENT_IS_VISIBLE);
    saveRequest.click();
    return PageFactory.initElements(driver, CreatePartRequestModalPage.class).get();
}

HTML 作为文本:

<button class="btn btn-primary ng-scope" ng-click="ctrl.saveRequest()" ng-if="ctrl.partsList.length > 0" style="" xpath="1">
                Save Request
</button>

标签: javaseleniumselenium-webdriverxpathwebdriverwait

解决方案


那用别的东西会更好contains text()

您可以使用//button[@class="btn btn-primary ng-scope"]

希望这可以帮助


推荐阅读