mirror of
https://github.com/phishingclub/phishingclub.git
synced 2026-07-08 21:38:15 +02:00
f5e6f53d75
Signed-off-by: Ronni Skansing <rskansing@gmail.com>
194 lines
4.4 KiB
Go
194 lines
4.4 KiB
Go
package rod
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
|
|
"github.com/go-rod/rod/lib/proto"
|
|
"github.com/go-rod/rod/lib/utils"
|
|
)
|
|
|
|
// TryError error.
|
|
type TryError struct {
|
|
Value interface{}
|
|
Stack string
|
|
}
|
|
|
|
func (e *TryError) Error() string {
|
|
return fmt.Sprintf("error value: %#v\n%s", e.Value, e.Stack)
|
|
}
|
|
|
|
// Is interface.
|
|
func (e *TryError) Is(err error) bool { _, ok := err.(*TryError); return ok }
|
|
|
|
// Unwrap stdlib interface.
|
|
func (e *TryError) Unwrap() error {
|
|
if err, ok := e.Value.(error); ok {
|
|
return err
|
|
}
|
|
return fmt.Errorf("%v", e.Value)
|
|
}
|
|
|
|
// ExpectElementError error.
|
|
type ExpectElementError struct {
|
|
*proto.RuntimeRemoteObject
|
|
}
|
|
|
|
func (e *ExpectElementError) Error() string {
|
|
return fmt.Sprintf("expect js to return an element, but got: %s", utils.MustToJSON(e))
|
|
}
|
|
|
|
// Is interface.
|
|
func (e *ExpectElementError) Is(err error) bool { _, ok := err.(*ExpectElementError); return ok }
|
|
|
|
// ExpectElementsError error.
|
|
type ExpectElementsError struct {
|
|
*proto.RuntimeRemoteObject
|
|
}
|
|
|
|
func (e *ExpectElementsError) Error() string {
|
|
return fmt.Sprintf("expect js to return an array of elements, but got: %s", utils.MustToJSON(e))
|
|
}
|
|
|
|
// Is interface.
|
|
func (e *ExpectElementsError) Is(err error) bool { _, ok := err.(*ExpectElementsError); return ok }
|
|
|
|
// ElementNotFoundError error.
|
|
type ElementNotFoundError struct{}
|
|
|
|
func (e *ElementNotFoundError) Error() string {
|
|
return "cannot find element"
|
|
}
|
|
|
|
// NotFoundSleeper returns ErrElementNotFound on the first call.
|
|
func NotFoundSleeper() utils.Sleeper {
|
|
return func(context.Context) error {
|
|
return &ElementNotFoundError{}
|
|
}
|
|
}
|
|
|
|
// ObjectNotFoundError error.
|
|
type ObjectNotFoundError struct {
|
|
*proto.RuntimeRemoteObject
|
|
}
|
|
|
|
func (e *ObjectNotFoundError) Error() string {
|
|
return fmt.Sprintf("cannot find object: %s", utils.MustToJSON(e))
|
|
}
|
|
|
|
// Is interface.
|
|
func (e *ObjectNotFoundError) Is(err error) bool { _, ok := err.(*ObjectNotFoundError); return ok }
|
|
|
|
// EvalError error.
|
|
type EvalError struct {
|
|
*proto.RuntimeExceptionDetails
|
|
}
|
|
|
|
func (e *EvalError) Error() string {
|
|
exp := e.Exception
|
|
return fmt.Sprintf("eval js error: %s %s", exp.Description, exp.Value)
|
|
}
|
|
|
|
// Is interface.
|
|
func (e *EvalError) Is(err error) bool { _, ok := err.(*EvalError); return ok }
|
|
|
|
// NavigationError error.
|
|
type NavigationError struct {
|
|
Reason string
|
|
}
|
|
|
|
func (e *NavigationError) Error() string {
|
|
return "navigation failed: " + e.Reason
|
|
}
|
|
|
|
// Is interface.
|
|
func (e *NavigationError) Is(err error) bool { _, ok := err.(*NavigationError); return ok }
|
|
|
|
// PageCloseCanceledError error.
|
|
type PageCloseCanceledError struct{}
|
|
|
|
func (e *PageCloseCanceledError) Error() string {
|
|
return "page close canceled"
|
|
}
|
|
|
|
// NotInteractableError error. Check the doc of Element.Interactable for details.
|
|
type NotInteractableError struct{}
|
|
|
|
func (e *NotInteractableError) Error() string {
|
|
return "element is not cursor interactable"
|
|
}
|
|
|
|
// InvisibleShapeError error.
|
|
type InvisibleShapeError struct {
|
|
*Element
|
|
}
|
|
|
|
// Error ...
|
|
func (e *InvisibleShapeError) Error() string {
|
|
return fmt.Sprintf("element has no visible shape or outside the viewport: %s", e.String())
|
|
}
|
|
|
|
// Is interface.
|
|
func (e *InvisibleShapeError) Is(err error) bool { _, ok := err.(*InvisibleShapeError); return ok }
|
|
|
|
// Unwrap ...
|
|
func (e *InvisibleShapeError) Unwrap() error {
|
|
return &NotInteractableError{}
|
|
}
|
|
|
|
// CoveredError error.
|
|
type CoveredError struct {
|
|
*Element
|
|
}
|
|
|
|
// Error ...
|
|
func (e *CoveredError) Error() string {
|
|
return fmt.Sprintf("element covered by: %s", e.String())
|
|
}
|
|
|
|
// Unwrap ...
|
|
func (e *CoveredError) Unwrap() error {
|
|
return &NotInteractableError{}
|
|
}
|
|
|
|
// Is interface.
|
|
func (e *CoveredError) Is(err error) bool { _, ok := err.(*CoveredError); return ok }
|
|
|
|
// NoPointerEventsError error.
|
|
type NoPointerEventsError struct {
|
|
*Element
|
|
}
|
|
|
|
// Error ...
|
|
func (e *NoPointerEventsError) Error() string {
|
|
return fmt.Sprintf("element's pointer-events is none: %s", e.String())
|
|
}
|
|
|
|
// Unwrap ...
|
|
func (e *NoPointerEventsError) Unwrap() error {
|
|
return &NotInteractableError{}
|
|
}
|
|
|
|
// Is interface.
|
|
func (e *NoPointerEventsError) Is(err error) bool { _, ok := err.(*NoPointerEventsError); return ok }
|
|
|
|
// PageNotFoundError error.
|
|
type PageNotFoundError struct{}
|
|
|
|
func (e *PageNotFoundError) Error() string {
|
|
return "cannot find page"
|
|
}
|
|
|
|
// NoShadowRootError error.
|
|
type NoShadowRootError struct {
|
|
*Element
|
|
}
|
|
|
|
// Error ...
|
|
func (e *NoShadowRootError) Error() string {
|
|
return fmt.Sprintf("element has no shadow root: %s", e.String())
|
|
}
|
|
|
|
// Is interface.
|
|
func (e *NoShadowRootError) Is(err error) bool { _, ok := err.(*NoShadowRootError); return ok }
|