I'm trying to get an element's attribute in a test. My test looks like this:
test(`Should be at least 5 characters long`, async({ page }) => {
await page.goto('http://localhost:8080');
const field = await page.locator('id=emailAddress');
const _attribute = await field.getAttribute('minlength');
const minlength = Number(_attribute);
await expect(minlength).toBeGreaterThanOrEqual(5);
});
When I run this, I can see that the minlength
value is 0
. This is because _attribute
is null
. However, I don't understand why. field
is a Locator
. But, I can't seem to get the attribute or it's value. What am I doing wrong?
The following worked for me
const inputElement = page.locator('#emailAddress');
minLength = await inputElement.evaluate(e => (e as HTMLInputElement).minLength);
EDIT: Use Juan Felipe Arellanos answer instead. I would delete this answer, but I can't delete the accepted answer.