Scrape Full Review Content After Button Click

I'm trying to scrape a page of customer reviews to get the full review content for each review. I have an Element Click Selector pulling 4 child elements. All of the elements scrape just fine except for the review listing content element.

What is strange is that I have succeeded in getting the scraper to click the first "Show full review" button it sees and return the full review from that review listing. I've done this by configuring the "Click type" to be "Click once" and the "Click element uniqueness" to be "Unique Text". If I try any other configuration, it doesn't pull the full review for any of the review listings on the page.

Even with that configuration, it won't click any subsequent "Show full review" buttons on the page beyond the first one. Can you help me understand what I'm doing wrong?

Url: https://apps.shopify.com/ecc-cloud-quickbooks-online-integration/reviews

Sitemap:
{"_id":"shopify_reviews","startUrl":["https://apps.shopify.com/ecc-cloud-quickbooks-online-integration/reviews"],"selectors":[{"id":"shopify_reviews_listing","type":"SelectorElementClick","parentSelectors":["_root"],"selector":"div.review-listing","multiple":true,"delay":2000,"clickElementSelector":"button.marketing-button--visual-link.truncate-content-toggle.truncate-content-toggle--show","clickType":"clickOnce","discardInitialElements":"do-not-discard","clickElementUniquenessType":"uniqueText"},{"id":"review_listing_header","type":"SelectorText","parentSelectors":["shopify_reviews_listing"],"selector":"h3","multiple":false,"regex":"","delay":0},{"id":"review_listing_metadata_starrating","type":"SelectorText","parentSelectors":["shopify_reviews_listing"],"selector":"span.ui-star-rating__rating","multiple":false,"regex":"","delay":0},{"id":"review_listing_metadata_date_posted","type":"SelectorText","parentSelectors":["shopify_reviews_listing"],"selector":"div.review-metadata__item:nth-of-type(2) div.review-metadata__item-value","multiple":false,"regex":"","delay":0},{"id":"review_listing_content","type":"SelectorText","parentSelectors":["shopify_reviews_listing"],"selector":"div.truncate-content-copy p","multiple":false,"regex":"","delay":0},{"id":"show_full_review","type":"SelectorElementClick","parentSelectors":["_root"],"selector":"div.review-listing","multiple":true,"delay":2000,"clickElementSelector":"button.marketing-button--visual-link.truncate-content-toggle.truncate-content-toggle--show","clickType":"clickOnce","discardInitialElements":"do-not-discard","clickElementUniquenessType":"uniqueText"}]}

One way to do this is to just click on all the 'Show full review' buttons first, followed by the scraping. Also, your current selector would fail becoz it will just click on the same button again, thus un-expanding text. This can be fixed with a :contains condition.

Try this:
{"_id":"forum-shopify_reviews-b","startUrl":["https://apps.shopify.com/ecc-cloud-quickbooks-online-integration/reviews"],"selectors":[{"id":"Click on all Show_full_reviews first","type":"SelectorElementClick","parentSelectors":["_root"],"selector":"div.review-listing","multiple":false,"delay":"2500","clickElementSelector":"button.marketing-button--visual-link.truncate-content-toggle.truncate-content-toggle--show:contains('Show full review')","clickType":"clickMore","discardInitialElements":"do-not-discard","clickElementUniquenessType":"uniqueHTMLText"},{"id":"Review row wrappers","type":"SelectorElement","parentSelectors":["_root"],"selector":"div.grid div.review-listing","multiple":true,"delay":0},{"id":"review_listing_header","type":"SelectorText","parentSelectors":["Review row wrappers"],"selector":"h3","multiple":false,"regex":"","delay":0},{"id":"review_listing_metadata_starrating","type":"SelectorText","parentSelectors":["Review row wrappers"],"selector":"span.ui-star-rating__rating","multiple":false,"regex":"","delay":0},{"id":"review_listing_metadata_date_posted","type":"SelectorText","parentSelectors":["Review row wrappers"],"selector":"div.review-metadata__item:nth-of-type(2) div.review-metadata__item-value","multiple":false,"regex":"","delay":0},{"id":"review_listing_content","type":"SelectorText","parentSelectors":["Review row wrappers"],"selector":"div.truncate-content-copy p","multiple":false,"regex":"","delay":0}]}

Thank you leemeng! Separating out the click selector from the rest of the selectors isn't something I had considered. Nor had I considered the :contains condition. Works great and I appreciate the help!