Class FrameLocatorImpl

    • Field Detail

      • frameSelector

        private final java.lang.String frameSelector
    • Constructor Detail

      • FrameLocatorImpl

        FrameLocatorImpl​(FrameImpl frame,
                         java.lang.String selector)
    • Method Detail

      • frameLocator

        public FrameLocatorImpl frameLocator​(java.lang.String selector)
        Description copied from interface: FrameLocator
        When working with iframes, you can create a frame locator that will enter the iframe and allow selecting elements in that iframe.
        Specified by:
        frameLocator in interface FrameLocator
        Parameters:
        selector - A selector to use when resolving DOM element.
      • getByAltText

        public Locator getByAltText​(java.lang.String text,
                                    FrameLocator.GetByAltTextOptions options)
        Description copied from interface: FrameLocator
        Allows locating elements by their alt text.

        **Usage**

        For example, this method will find the image by alt text "Playwright logo":

        
         page.getByAltText("Playwright logo").click();
         
        Specified by:
        getByAltText in interface FrameLocator
        Parameters:
        text - Text to locate the element for.
      • getByAltText

        public Locator getByAltText​(java.util.regex.Pattern text,
                                    FrameLocator.GetByAltTextOptions options)
        Description copied from interface: FrameLocator
        Allows locating elements by their alt text.

        **Usage**

        For example, this method will find the image by alt text "Playwright logo":

        
         page.getByAltText("Playwright logo").click();
         
        Specified by:
        getByAltText in interface FrameLocator
        Parameters:
        text - Text to locate the element for.
      • getByLabel

        public Locator getByLabel​(java.lang.String text,
                                  FrameLocator.GetByLabelOptions options)
        Description copied from interface: FrameLocator
        Allows locating input elements by the text of the associated <label> or aria-labelledby element, or by the aria-label attribute.

        **Usage**

        For example, this method will find inputs by label "Username" and "Password" in the following DOM:

        
         page.getByLabel("Username").fill("john");
         page.getByLabel("Password").fill("secret");
         
        Specified by:
        getByLabel in interface FrameLocator
        Parameters:
        text - Text to locate the element for.
      • getByLabel

        public Locator getByLabel​(java.util.regex.Pattern text,
                                  FrameLocator.GetByLabelOptions options)
        Description copied from interface: FrameLocator
        Allows locating input elements by the text of the associated <label> or aria-labelledby element, or by the aria-label attribute.

        **Usage**

        For example, this method will find inputs by label "Username" and "Password" in the following DOM:

        
         page.getByLabel("Username").fill("john");
         page.getByLabel("Password").fill("secret");
         
        Specified by:
        getByLabel in interface FrameLocator
        Parameters:
        text - Text to locate the element for.
      • getByPlaceholder

        public Locator getByPlaceholder​(java.lang.String text,
                                        FrameLocator.GetByPlaceholderOptions options)
        Description copied from interface: FrameLocator
        Allows locating input elements by the placeholder text.

        **Usage**

        For example, consider the following DOM structure.

        You can fill the input after locating it by the placeholder text:

        
         page.getByPlaceholder("name@example.com").fill("playwright@microsoft.com");
         
        Specified by:
        getByPlaceholder in interface FrameLocator
        Parameters:
        text - Text to locate the element for.
      • getByPlaceholder

        public Locator getByPlaceholder​(java.util.regex.Pattern text,
                                        FrameLocator.GetByPlaceholderOptions options)
        Description copied from interface: FrameLocator
        Allows locating input elements by the placeholder text.

        **Usage**

        For example, consider the following DOM structure.

        You can fill the input after locating it by the placeholder text:

        
         page.getByPlaceholder("name@example.com").fill("playwright@microsoft.com");
         
        Specified by:
        getByPlaceholder in interface FrameLocator
        Parameters:
        text - Text to locate the element for.
      • getByRole

        public Locator getByRole​(AriaRole role,
                                 FrameLocator.GetByRoleOptions options)
        Description copied from interface: FrameLocator
        Allows locating elements by their ARIA role, ARIA attributes and accessible name.

        **Usage**

        Consider the following DOM structure.

        You can locate each element by it's implicit role:

        
         assertThat(page
             .getByRole(AriaRole.HEADING,
                        new Page.GetByRoleOptions().setName("Sign up")))
             .isVisible();
        
         page.getByRole(AriaRole.CHECKBOX,
                        new Page.GetByRoleOptions().setName("Subscribe"))
             .check();
        
         page.getByRole(AriaRole.BUTTON,
                        new Page.GetByRoleOptions().setName(
                            Pattern.compile("submit", Pattern.CASE_INSENSITIVE)))
             .click();
         

        **Details**

        Role selector **does not replace** accessibility audits and conformance tests, but rather gives early feedback about the ARIA guidelines.

        Many html elements have an implicitly defined role that is recognized by the role selector. You can find all the supported roles here. ARIA guidelines **do not recommend** duplicating implicit roles and attributes by setting role and/or aria-* attributes to default values.

        Specified by:
        getByRole in interface FrameLocator
        Parameters:
        role - Required aria role.
      • getByTestId

        public Locator getByTestId​(java.lang.String testId)
        Description copied from interface: FrameLocator
        Locate element by the test id.

        **Usage**

        Consider the following DOM structure.

        You can locate the element by it's test id:

        
         page.getByTestId("directions").click();
         

        **Details**

        By default, the data-testid attribute is used as a test id. Use Selectors.setTestIdAttribute() to configure a different test id attribute if necessary.

        Specified by:
        getByTestId in interface FrameLocator
        Parameters:
        testId - Id to locate the element by.
      • getByTestId

        public Locator getByTestId​(java.util.regex.Pattern testId)
        Description copied from interface: FrameLocator
        Locate element by the test id.

        **Usage**

        Consider the following DOM structure.

        You can locate the element by it's test id:

        
         page.getByTestId("directions").click();
         

        **Details**

        By default, the data-testid attribute is used as a test id. Use Selectors.setTestIdAttribute() to configure a different test id attribute if necessary.

        Specified by:
        getByTestId in interface FrameLocator
        Parameters:
        testId - Id to locate the element by.
      • getByText

        public Locator getByText​(java.lang.String text,
                                 FrameLocator.GetByTextOptions options)
        Description copied from interface: FrameLocator
        Allows locating elements that contain given text.

        See also Locator.filter() that allows to match by another criteria, like an accessible role, and then filter by the text content.

        **Usage**

        Consider the following DOM structure:

        You can locate by text substring, exact string, or a regular expression:

        
         // Matches <span>
         page.getByText("world")
        
         // Matches first <div>
         page.getByText("Hello world")
        
         // Matches second <div>
         page.getByText("Hello", new Page.GetByTextOptions().setExact(true))
        
         // Matches both <div>s
         page.getByText(Pattern.compile("Hello"))
        
         // Matches second <div>
         page.getByText(Pattern.compile("^hello$", Pattern.CASE_INSENSITIVE))
         

        **Details**

        Matching by text always normalizes whitespace, even with exact match. For example, it turns multiple spaces into one, turns line breaks into spaces and ignores leading and trailing whitespace.

        Input elements of the type button and submit are matched by their value instead of the text content. For example, locating by text "Log in" matches <input type=button value="Log in">.

        Specified by:
        getByText in interface FrameLocator
        Parameters:
        text - Text to locate the element for.
      • getByText

        public Locator getByText​(java.util.regex.Pattern text,
                                 FrameLocator.GetByTextOptions options)
        Description copied from interface: FrameLocator
        Allows locating elements that contain given text.

        See also Locator.filter() that allows to match by another criteria, like an accessible role, and then filter by the text content.

        **Usage**

        Consider the following DOM structure:

        You can locate by text substring, exact string, or a regular expression:

        
         // Matches <span>
         page.getByText("world")
        
         // Matches first <div>
         page.getByText("Hello world")
        
         // Matches second <div>
         page.getByText("Hello", new Page.GetByTextOptions().setExact(true))
        
         // Matches both <div>s
         page.getByText(Pattern.compile("Hello"))
        
         // Matches second <div>
         page.getByText(Pattern.compile("^hello$", Pattern.CASE_INSENSITIVE))
         

        **Details**

        Matching by text always normalizes whitespace, even with exact match. For example, it turns multiple spaces into one, turns line breaks into spaces and ignores leading and trailing whitespace.

        Input elements of the type button and submit are matched by their value instead of the text content. For example, locating by text "Log in" matches <input type=button value="Log in">.

        Specified by:
        getByText in interface FrameLocator
        Parameters:
        text - Text to locate the element for.
      • getByTitle

        public Locator getByTitle​(java.lang.String text,
                                  FrameLocator.GetByTitleOptions options)
        Description copied from interface: FrameLocator
        Allows locating elements by their title attribute.

        **Usage**

        Consider the following DOM structure.

        You can check the issues count after locating it by the title text:

        
         assertThat(page.getByTitle("Issues count")).hasText("25 issues");
         
        Specified by:
        getByTitle in interface FrameLocator
        Parameters:
        text - Text to locate the element for.
      • getByTitle

        public Locator getByTitle​(java.util.regex.Pattern text,
                                  FrameLocator.GetByTitleOptions options)
        Description copied from interface: FrameLocator
        Allows locating elements by their title attribute.

        **Usage**

        Consider the following DOM structure.

        You can check the issues count after locating it by the title text:

        
         assertThat(page.getByTitle("Issues count")).hasText("25 issues");
         
        Specified by:
        getByTitle in interface FrameLocator
        Parameters:
        text - Text to locate the element for.
      • nth

        public FrameLocator nth​(int index)
        Description copied from interface: FrameLocator
        Returns locator to the n-th matching frame. It's zero based, nth(0) selects the first frame.
        Specified by:
        nth in interface FrameLocator