I am using playwright.js to write a script for https://target.com, and on the page where you submit shipping information, it will provide the option to use a saved address if you have gone through the checkout process previously on that target account.
I would like to enter fresh shipping information every time I run the script, so I must have playwright click delete if it exists on the page, and then enter the shipping information.
The function that is shown below works to click delete, but then it times out at if (await page.$$("text='Delete'") != [])
rather than executing the else
part of the function.
How can I rewrite this function so that it simply checks if the element (selector: text='Delete'
) exists, and clicks it if it does, and executes the filling part of the function if it doesn't?
async function deliveryAddress() {
if (await page.$$("text='Delete'") != []) {
await page.click("text='Delete'", {force:true})
await deliveryAddress()
} else {
await page.focus('input#full_name')
await page.type('input#full_name', fullName, {delay: delayms});
await page.focus('input#address_line1')
await page.type('input#address_line1', address, {delay: delayms});
await page.focus('input#zip_code')
await page.type('input#zip_code', zipCode, {delay: delayms});
await page.focus('input#mobile')
await page.type('input#mobile', phoneNumber, {delay: delayms});
await page.click("text='Save & continue'", {force:true})
}
}
await expect(page.locator(".MyClass")).toHaveCount(0)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With