Skip to content

Rod stuck after invoking Page method #1167

Open
@devsheke

Description

@devsheke

Rod Version: v0.116.2

OS: Ubuntu 24.04
Chromium version: 131.0.6778.264-r0
Go version: 1.23.3

Rod does not create a new page nor does it report an error. My whole program gets stuck after calling the *rod.Browser.Page method.

Function creating the browser:

// browserWrapper is an abstraction over the rod launcher and browser types.
type browserWrapper struct {
	browser  *rod.Browser
	launcher *launcher.Launcher
}

// newBrowserWrapper creates an instance of *browserWrapper and launches a new browser.
// The environment is checked for a 'BROWSER' variable with a path to a supported browser. If not found, rod
// downloads a browser and takes over.
func newBrowserWrapper(headless bool) (*browserWrapper, error) {
	wrapper := new(browserWrapper)
	if browserPath, ok := os.LookupEnv("BROWSER"); ok {
		wrapper.launcher = launcher.New().Bin(browserPath)
	} else {
		wrapper.launcher = launcher.New()
	}

	wrapper.launcher = wrapper.launcher.Headless(headless)

	controlURL, err := wrapper.launcher.Launch()
	if err != nil {
		return nil, err
	}
	wrapper.browser = rod.New().ControlURL(controlURL)
	err = wrapper.browser.Connect()

	return wrapper, err
}

This is how a new page is provisioned:

func LoginFunc(wrapper *browserWrapper) error {
	// program gets stuck at this function call.
	page, err := wrapper.browser.Page(proto.TargetCreateTarget{})
	if err != nil {
		return err
	}
	return nil
}

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions