Sample Flexcard Test (Java)

This example demonstrates the complete end-to-end user journey, including setup, navigation, and interaction with Flexcards.

Example
Example
package utam.examples.salesforce.web;

import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
import org.testng.Assert;
import utam.utils.salesforce.TestEnvironment;
import utam.omnistudio.flexcard.pageobjects.FlexCardState;
import utam.omnistudio.core.pageobjects.FlexCard;
import utam.omnistudio.flexcard.pageobjects.Element;
import java.util.List;
import utam.flexipage.pageobjects.RecordHomeTemplateDesktop2;
import utam.global.pageobjects.RecordHomeFlexipage2;
import utam.omnistudio.flexcard.pageobjects.OutputField;

public class FlexcardTest extends SalesforceWebTestBase {

    private final TestEnvironment testEnvironment = getTestEnvironment("sandbox44");

    @BeforeTest
    public void setup() {
        setupChrome();
        login(testEnvironment, "home");
    }

    private FlexCard goDirectlyToFlexcard() {
        getDriver().get(YOUR_FLEXCARD_EMBEDDED_RECORD_PAGE_URL);
        RecordHomeFlexipage2 recordHome = from(RecordHomeFlexipage2.class);
        FlexCard flexcard = recordHome.getDecorator().getEventBroker()
                .getGeneratedTemplate(RecordHomeTemplateDesktop2.class)
                .getComponent2("runtime_omnistudio_flexcard")
                .getContent(FlexCard.class);

        return flexcard;
    }

    @Test
    public void testFlexcard() throws InterruptedException {
        FlexCard flexcard = goDirectlyToFlexcard();
        flexcard.waitForVisible();
        FlexCardState state = flexcard.getFlexCardStates().get(0);
        List<Element> elements = state.getElements();
        String label = elements.get(0).getOutputField().getLabel().getText();
        Assert.assertEquals(label, "Result", "The label is not correct");
    }

    @AfterTest
    public void tearDown() {
        quitDriver();
    }
}