Categorygithub.com/ecwid/control
modulepackage
0.0.0-20240920093258-0eb8b47e7929
Repository: https://github.com/ecwid/control.git
Documentation: pkg.go.dev

# README

ecwid-control

control is a automation tool written from scratch using golang on top of Chrome DevTools

Warning This is an experimental project, backward compatibility is not guaranteed!

Installation

go get -u github.com/ecwid/control

How to use

Here is an example of using:

func main() {
	session, cancel, err := control.Take("--no-startup-window")
	if err != nil {
		panic(err)
	}
	defer cancel()

	retrier := retry.Static{
		Timeout: 10 * time.Second,
		Delay:   500 * time.Millisecond, // delay between attempts
	}

	session.Frame.MustNavigate("https://zoid.ecwid.com")

	var products []string
	err = retry.Func(retrier, func() error {
		products = []string{}
		return session.Frame.QueryAll(".grid-product__title-inner").Then(func(nl control.NodeList) error {
			return nl.Foreach(func(n *control.Node) error {
				return n.GetText().Then(func(s string) error {
					products = append(products, s)
					return nil
				})
			})
		})
	})
	if err != nil {
		panic(err)
	}

    // "must way" throws panic on an error

	for _, node := range session.Frame.MustQueryAll(".grid-product__title-inner") {
		log.Println(node.MustGetText())
	}
}

You can call any CDP method implemented in protocol package using a session

err = security.SetIgnoreCertificateErrors(session, security.SetIgnoreCertificateErrorsArgs{
    Ignore: true,
})

or call a custom unimplemented method

err = session.Call("Security.setIgnoreCertificateErrors", sendStruct, receiveStruct)

Subscribe on the domain event

future := control.Subscribe(session, "Target.targetCreated", func(t target.TargetCreated) bool {
    return t.TargetInfo.Type == "page"
})
defer future.Cancel()

// do something here ...

ctx, cancel := context.WithTimeout(context.TODO(), time.Second*10)
result /* target.TargetCreated */, err := future.Get(ctx)

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# Functions

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# Constants

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# Variables

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
20KB.

# Structs

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# Interfaces

No description provided by the author
No description provided by the author

# Type aliases

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author