我有一个'提交'在另一个动作发生后变为可点击的按钮。在这种情况下,用户必须单击TOS复选框,然后该按钮变为可单击。我找不到一个允许我自动点击“提交”按钮的选择器。单击“提交”按钮时,将出现确认窗口。
我使用Protractor作为Webstorm的测试运行者。目前,测试通过但是我没有看到单击“提交”按钮并且没有创建新帐户。我可以添加一个断言,但我需要知道如何找到实际点击的元素。启动自动化后,XPath和CSS似乎不起作用。
这就是我尝试编辑的内容:
element(by.xpath('//*[@id="formHolderId"]/div/div/div[3]/span/button[2]')).click();
这是在检查TOS复选框之前Inspect Element显示的内容:
<button data-ng-click="modalOptions.ok(formData)" data-ng-disabled="formHolder.$invalid || formHolder.formHolder.$invalid" data-ng-if="modalOptions.actionButtonText" type="submit" class="btn btn-sm btn-submit ng-binding ng-scope ng-click-active" disabled="disabled">
Submit</button>
在检查TOS复选框后,这就是Inspect Element的样子:
<button data-ng-click="modalOptions.ok(formData)" data-ng-disabled="formHolder.$invalid || formHolder.formHolder.$invalid" data-ng-if="modalOptions.actionButtonText" type="submit" class="btn btn-sm btn-submit ng-binding ng-scope ng-click-active">
Submit</button>
虽然没有勾选TOS复选框,但是有一个disabled="disabled"
,无论如何,我似乎无法从中获取可点击的元素。
答案 0 :(得分:1)
单击TOS复选框以启用该按钮,按文本找到它并单击:
var submitButton = element(by.xpath("//button[contains(., 'Submit')]"));
submitButton.click();
如果出于某种原因,您无法启用该按钮,因此,使用element.click()
单击它,您可以通过执行javascript来模拟点击:
browser.executeScript("arguments[0].click();", submitButton.getWebElement());