Skip to content

Add Search all elements and search for an element in the parent.#1

Draft
polivera wants to merge 3 commits intofalmar:devfrom
polivera:po/search-elements-in-page-dom
Draft

Add Search all elements and search for an element in the parent.#1
polivera wants to merge 3 commits intofalmar:devfrom
polivera:po/search-elements-in-page-dom

Conversation

@polivera
Copy link

Expand DOM element search functionality

This PR introduces SearchAll and SearchFromElement function to the page dom API.

Changes

Add SearchAll and SearchFromElement functions

Usage example

SearchAll

// Find all submit buttons on the page
output, err := page.SearchAll(ctx, &gopilot.PageSearchInput{
    Selector:     "button[type='submit']",
    Pierce:       true, // Include Shadow DOM
})
if err != nil {
    return err
}

for _, element := range output.Elements {
    // Interact with each element
}

SearchFromElement

// First, get a parent container
parentOutput, err := page.SearchAll(ctx, &gopilot.PageSearchInput{
    Selector: ".form-container",
})
if err != nil {
    return err
}

parent := parentOutput.Elements[0]

// Then search for a specific input within that container
inputOutput, err := page.SearchFromElement(ctx, parent, &gopilot.PageQuerySelectorInput{
    Selector: "input[name='email']",
})
if err != nil {
    return err
}

element := inputOutput.Element

- Remove SearchFromElement from page_dom and add Search to element_dom
- Create a common search function to merge the code from search single and search all.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant