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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单击模态窗口中的按钮 - 量角器相关的知识,希望对你有一定的参考价值。

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

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

但我收到以下错误:

UnknownError: unknown error: Element is not clickable at point (,). Other element would receive the click:

可能是因为我在模态窗口外面有另一个叫“拒绝”的按钮?

enter image description here

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

发现这是显示此Decline按钮的js代码。

.....
var content = {
          title: 'Decline',
          htmlBody: '<p>...</p> ',
          okButton: 'Decline',
          onOk: function() {
.....
答案

由于有两个带按钮文字Decline的按钮,我们如何识别模态中的按钮?

接近这种方法的一种方法是改进定位器以在模态内容的范围内工作。但是,由于您没有提供模态的HTML表示,我无法为您提供具体的答案。以下是可以根据您的使用情况进行改进的示例:

element(by.css(".modalContent button[ng-click*=ok]")).click();
element(by.css(".modalContent")).element(by.buttonText("Decline")).click();

另一种方法是找到具有特定文本的所有按钮并过滤可见的文本:

element.all(by.buttonText("Decline")).filter(function (button) {
    return button.isDisplayed().then(function (isDisplayed) {
        return isDisplayed;
    });
}).first().click();
另一答案

我的同事推荐了这个并且它有效:

单击First Decline按钮打开一个模态,

睡了一段时间,

现在单击第二个Decline按钮。

element(by.buttonText('Decline')).click();
browser.sleep(2000);
element(by.cssContainingText('.btn', 'Decline')).click();

感谢你的帮助 :)

另一答案

编写需要在模态窗口下,窗体标签内显示的代码。并使用现有表单序列化该表单。

另一答案

只需按其文本搜索按钮,然后使用click函数。所以对你来说它应该是这样的:

element(by.buttonText('Cancel')).click();
另一答案

试试下面的代码,

var DeclineBtn = element(by.buttonText('Decline'));
browser.executeScript("arguments[0].click()",DeclineBtn.getWebElement())

以上是关于单击模态窗口中的按钮 - 量角器的主要内容,如果未能解决你的问题,请参考以下文章

如何切换到模态弹出窗口并使用Telerik中的编码步骤识别其中的元素

如何根据 v-for 值在模态窗口(单击按钮时)上获取所选数据?

[我想在VUE js中单击按钮时显示模态框

如何使用动态添加的按钮打开模态窗口 - 纯 JavaScript

如何在 vue 中创建模态弹出窗口

如何从Android中的片段单击按钮打开片段