【发布时间】:2015-05-18 16:46:19
【问题描述】:
我有一个“提交”按钮,在发生其他操作后该按钮变为可点击。在这种情况下,用户必须单击 TOS 复选框,然后该按钮变为可单击。我找不到允许我自动单击提交按钮的选择器。当您单击提交按钮时,将出现一个确认窗口。
我使用 Protractor 作为 Webstorm 的测试运行器。目前,测试通过了,但是我没有看到提交按钮被点击,也没有创建新帐户。我可以添加一个断言,但我需要知道如何找到要实际单击的元素。自动化启动后,XPath 和 CSS 似乎不起作用。
这是我要编辑的内容:
element(by.xpath('//*[@id="formHolderId"]/div/div/div[3]/span/button[2]')).click();
这是检查元素在 TOS 复选框被选中之前显示的内容:
<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 复选框后检查元素的样子:
<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",但无论哪种方式,我似乎都无法从中获得可点击的元素。
【问题讨论】:
-
定义“我似乎无法从中获得可点击元素”的意思。您的代码是什么,您希望它做什么以及它会做什么?
-
我需要能够点击“提交”按钮。我似乎无法通过 XPath、CSS 或任何其他 element(by...) 语句获得它。
-
我的水晶球说问题出在第 42 行。如果您比水晶球更信任开发人员,请发布您的代码,并说明您希望它做什么以及它会做什么。
-
编辑您的问题。不要在 cmets 中发布代码。发布所有相关代码。请为您的按钮分配一个 ID 并按 ID 获取按钮。如果您的代码有效,那么只要您对页面布局进行微小更改,它就会开始中断。
-
希望这样更好,抱歉。
标签: javascript testing selenium protractor end-to-end