Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击模式窗口中的按钮-量角器_Javascript_Angularjs_Protractor_Modal Window - Fatal编程技术网

Javascript 单击模式窗口中的按钮-量角器

Javascript 单击模式窗口中的按钮-量角器,javascript,angularjs,protractor,modal-window,Javascript,Angularjs,Protractor,Modal Window,我正在为现有应用程序编写量角器测试。 我在一个模式窗口中有一个名为“拒绝”的按钮,我正在尝试使用以下方法单击它: element(by.buttonText('Decline')).click(); 但我收到以下错误: UnknownError: unknown error: Element is not clickable at point (,). Other element would receive the click: 可能是因为在模式窗口外有另一个名为“拒绝”的按钮 如何单击模

我正在为现有应用程序编写量角器测试。 我在一个模式窗口中有一个名为“拒绝”的按钮,我正在尝试使用以下方法单击它:

element(by.buttonText('Decline')).click();
但我收到以下错误:

UnknownError: unknown error: Element is not clickable at point (,). Other element would receive the click:
可能是因为在模式窗口外有另一个名为“拒绝”的按钮

如何单击模式窗口的“拒绝”按钮

发现这是显示此拒绝按钮的js代码

.....
var content = {
          title: 'Decline',
          htmlBody: '<p>...</p> ',
          okButton: 'Decline',
          onOk: function() {
.....
element(by.buttonText('Decline')).click();
browser.sleep(2000);
element(by.cssContainingText('.btn', 'Decline')).click();
。。。。。
变量内容={
标题:"衰退",,
htmlBody:“…

”, OK按钮:“拒绝”, onOk:function(){ .....
试试下面的代码

var DeclineBtn = element(by.buttonText('Decline'));
browser.executeScript("arguments[0].click()",DeclineBtn.getWebElement())
编写代码 需要在模态窗口下显示, 内部表单标签。 并用现有表单序列化该表单

由于有两个按钮的按钮文本下降,我们如何识别模态中的一个

一种方法是改进定位器,使其在模式内容的范围内工作。但是,由于您没有提供模式的HTML表示,因此我无法为您提供具体的答案。以下是您可以改进以适合您的用例的示例:

element(by.css(".modalContent button[ng-click*=ok]")).click();
element(by.css(".modalContent")).element(by.buttonText("Decline")).click();
另一种方法是查找具有特定文本的所有按钮,并过滤可见的按钮:


我的同事推荐了这一点,它起了作用:

单击第一个拒绝按钮打开一个模式

睡一段时间

现在单击第二个拒绝按钮

.....
var content = {
          title: 'Decline',
          htmlBody: '<p>...</p> ',
          okButton: 'Decline',
          onOk: function() {
.....
element(by.buttonText('Decline')).click();
browser.sleep(2000);
element(by.cssContainingText('.btn', 'Decline')).click();

感谢您的帮助:)

只需按按钮的文本搜索按钮并使用功能
单击即可。因此,对于您来说,它应该是这样的:

element(by.buttonText('Cancel')).click();

这是做什么的?你能简单描述一下吗?因为有两个按钮带有按钮文本递减,我们如何识别模态中的一个?谢谢!工作完美!太好了:)很高兴听到这个。