With all the engagement on this topic, I figured it had already been worked out
Lets take this step by step, in detail, and I will give an example solution at the end for what I think you are trying to accomplish:
1.) Locating the links
On the page you linked, I’m assuming that you want to click on the Read More “button” (really, a link) for each search result:

Note: You could also click the link associated with the “listing title” to achieve the same goal:

So, lets create a Test Object with an XPath that will identify all links of this type. I will write an Xpath for the Read More button, but you could easily do this for the other link:
2.) Working with the pagination
You mentioned that you want to click ALL links, and that the set of all links is divided into pages (i.e. they are “paginated”):

This means that you will need another Test Object to manipulate the pagination widget as well. This can be handled in a couple of ways, but I’ll just follow the same idea we’re using for the links themselves and grab all page links that are available:
3.) Test code
Since you haven’t specified what you’re actually trying to do beyond “click every link”, I will write the test code based on the assumption that that’s literally all you are trying to do, and you can fill in the rest:
import org.openqa.selenium.WebElement
import com.kms.katalon.core.testobject.ObjectRepository
import com.kms.katalon.core.webui.common.WebUiCommonHelper
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI
WebUI.openBrowser("https://www.3dprintingbusiness.directory/?s&where&company_category=bioprinting&cat=bioprinting&search_simple=Search#");
// Get a list of all pages in the pagination widget:
List<WebElement> pageLinks = WebUiCommonHelper.findWebElements(ObjectRepository.findTestObject("pageLink"), 30);
// Loop through each page in the pagination:
for(WebElement pageLink : pageLinks) {
// Click the page link:
pageLink.click();
// Get a list of links for the current page:
List<WebElement> searchResultLinks = WebUiCommonHelper.findWebElements(ObjectRepository.findTestObject("searchResultLink"), 30);
// Loop through each result link in the page:
for(WebElement searchResultLink : searchResultLinks) {
// Click the result link:
searchResultLink.click();
// Do some validation? You haven't further specified what you're trying to do with each link...
// Return to the search results page:
WebUI.back();
}
}
4.) Final notes
The idea here is to get a List of WebElements that you can do whatever you want with. This is much easier (in my opinion) than trying to get individual WebElements using some dynamic XPath, as has been suggested. With this approach, you simply get a list of all target elements, then you can either loop through them, as I’ve shown above, or you can select individual elements from the list using an index:
List<WebElement> searchResultLinks = WebUiCommonHelper.findWebElements(ObjectRepository.findTestObject("searchResultLink"), 30);
WebElement firstLink = searchResultLinks.get(0);
WebElement secondLink = searchResultLinks.get(1);
.
.
.
Hopefully this helps! 