繁体   English   中英

如何检查Casper.js中是否禁用了文本输入?

[英]How to check whether a text input is disabled in Casper.js?

我正在编写一个Casper.js测试。 我需要检查输入字段是否被disabled

casper.waitForSelector("input[id='myid']",
    function success() {
        ...
    },
    function fail() {
        ...
    });

    ...

检索字段不是问题,但是禁用的测试又如何呢?

我不确定Casper.js是否支持此功能,但是您应该能够在选择器中使用:disabled伪类 ,然后让DOM为您处理。

如果可以正常运行,您的代码将变成:

casper.waitForSelector("input[id='myid']:disabled",
function success() {
    ...
},
function fail() {
    ...
});

...

如果元素被禁用,您将只收到它。 如果需要逆运算,可以使用一个对应的:enabled来实现。

你不告诉你如何检索元素,但我假设你使用没有卡斯帕API evaluate 您必须使用evaluate ,因为disabled是DOM元素的属性,而现有的casper API仅提供方便的函数来检索属性:

function success() {
    var disabled = this.evaluate(function(selector){
        return !!document.querySelector(selector).disabled;
    }, "input#myid");
}

如果自页面加载以来未更改元素,则也可以使用getElementInfo

function success() {
    var disabled = !!this.getElementInfo("input#myid").attributes.disabled;
}

这个怎么样。 简单同步,不打扰。

var x = require('casper').selectXPath;

if (!casper.exists(x('//div[@class="item_size"]/input[@disabled]'))){ //!disabled
 xpath = '//div[@class="item_size"]//li[1]/label'
 var size = casper.fetchText(x(xpath)).trim();
 casper.echo(size);
 sizes.push(size)
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM