Selenium找不到从嵌入式html

时间:2016-06-15 19:35:56

标签: html selenium

所以我试图点击这个"回顾协议"按钮:

enter image description here

具有以下HTML代码:

<section class="col-33 text-right">
        <button class="anchor-button bordered" ng-click="onClickReviewAgreement()">Review Agreement</button>
</section>

但显然它是从其他资源加载的,因此findElement(By.*)无法处理它 - 我也尝试过By.xpath("/html/body/ul/li[2]/notification-bar/ul/li/section[1]/section[2]/button") - 。我在View Page Sources中获得的所有相关代码是:

<!-- Agreement form modal -->
    <ui-modal
        ui-modal-id="ui.modals.agreementFormModal"
        ui-modal-class="takeover agreement"
        ui-modal-controller="AgreementFormController"
        ui-modal-template-url="paths.templates + '/components/forms/tpl.agreement-form.html'"
        ui-modal-has-dimmer="true">
    </ui-modal>

有什么方法可以选择这些元素吗?

2 个答案:

答案 0 :(得分:3)

您应该能够使用css绑定到ng-click="onClickReviewAgreement()"。它应该是唯一的,并且css是xpath

的更好和更有效的替代方案

答案 1 :(得分:2)

尝试使用css查找元素,然后单击 -

WebElement buttonElement = driver.findElement(By.cssSelector('[ng-click="onClickReviewAgreement()"]'));
buttonElement.click();