Question: Unable to check if a button is disabled in javascript
I am trying to check if a button is disabled in testcafe. Below is my code:
test('Verify button is inactive after disabling button functionality', async (browser) => { await browser.wait(5000); const button = document.querySelector ('[data-testid=Button]'); await browser.click(button); const buttonActive = ClientFunction(() => { const button = document.querySelector ('[data-testid=Button]'); const buttonStatus = button.disabled; console.log(buttonStatus); return buttonStatus; }); await browser.expect(buttonActive()).eql(false); });
this reports an error - TypeError: Cannot read properties of null (reading 'disabled')
I tried querying from browser console and it worked -
document.querySelector('[data-testid=Button]').disabled false
Any idea why it is not working?
Here is the console log of the button element -
I did, and have below logged -
Function: __$$clientFunction$$] { with: [Function (anonymous)], nth: [Function (anonymous)], withText: [Function (anonymous)], withExactText: [Function (anonymous)], withAttribute: [Function (anonymous)], filter: [Function (anonymous)], filterVisible: [Function (anonymous)], filterHidden: [Function (anonymous)], find: [Function (anonymous)], parent: [Function (anonymous)], child: [Function (anonymous)], sibling: [Function (anonymous)], nextSibling: [Function (anonymous)], prevSibling: [Function (anonymous)], shadowRoot: [Function (anonymous)], getStyleProperty: [Function (anonymous)], getAttribute: [Function (anonymous)], hasAttribute: [Function (anonymous)], getBoundingClientRectProperty: [Function (anonymous)], hasClass: [Function (anonymous)], addCustomDOMProperties: [Function (anonymous)], addCustomMethods: [Function (anonymous)], [Symbol(functionBuilder)]: SelectorBuilder { callsiteNames: { instantiation: 'Selector', execution: '__$$clientFunction$$' }, fn: '[data-testid=Audio-Button]', options: { apiFn: "Selector('[data-testid=Audio-Button]')", apiFnChain: [Array], apiFnID: 0 }, compiledFnCode: '(function(){\n' + ' var __f$=(function(){return document.querySelectorAll("[data-testid=Audio-Button]");});;\n' + ' return function(){\n' + ' var args = __dependencies$.boundArgs || arguments;\n' + ' var selectorFilter = __dependencies$.selectorFilter;\n' + '\n' + ' var nodes = __f$.apply(this, args);\n' + ' nodes = selectorFilter.cast(nodes);\n' + '\n' + ' if (!nodes.length && !selectorFilter.error)\n' + ' selectorFilter.error = __dependencies$.apiInfo.apiFnID;\n' + '\n' + ' return selectorFilter.filter(nodes, __dependencies$.filterOptions, __dependencies$.apiInfo);\n' + ' };\n' + '})();', replicator: { transforms: [Array], transformsMap: [Object: null prototype], serializer: [Object] }, callsite: undefined } }
9codings