http

package
v0.18.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 28, 2023 License: Apache-2.0 Imports: 23 Imported by: 21

Documentation

Index

Constants

View Source
const DriverName = "http"

Variables

View Source
var (
	DefaultConcurrency = 1
	DefaultMaxRetries  = 5
	DefaultTimeout     = time.Second * 30
)

Functions

func EvalXPathTo added in v0.16.0

func EvalXPathTo(selection *goquery.Selection, expression string) (core.Value, error)

func EvalXPathToElement added in v0.16.0

func EvalXPathToElement(selection *goquery.Selection, expression string) (drivers.HTMLElement, error)

func EvalXPathToNode added in v0.16.0

func EvalXPathToNode(selection *goquery.Selection, expression string) (drivers.HTMLNode, error)

func EvalXPathToNodes added in v0.16.0

func EvalXPathToNodes(selection *goquery.Selection, expression string) (*values.Array, error)

func EvalXPathToNodesWith added in v0.16.0

func EvalXPathToNodesWith(selection *goquery.Selection, expression string, mapper func(node *html.Node) (core.Value, error)) (*values.Array, error)

func NewHTMLElement

func NewHTMLElement(node *goquery.Selection) (drivers.HTMLElement, error)

Types

type Driver

type Driver struct {
	// contains filtered or unexported fields
}

func NewDriver

func NewDriver(opts ...Option) *Driver

func (*Driver) Close

func (drv *Driver) Close() error

func (*Driver) Name added in v0.7.0

func (drv *Driver) Name() string

func (*Driver) Open added in v0.8.0

func (drv *Driver) Open(ctx context.Context, params drivers.Params) (drivers.HTMLPage, error)

func (*Driver) Parse added in v0.8.0

func (drv *Driver) Parse(_ context.Context, params drivers.ParseParams) (drivers.HTMLPage, error)

type HTMLDocument

type HTMLDocument struct {
	// contains filtered or unexported fields
}

func NewHTMLDocument

func NewHTMLDocument(
	node *goquery.Document,
	url string,
	parent drivers.HTMLDocument,
) (*HTMLDocument, error)

func NewRootHTMLDocument added in v0.8.0

func NewRootHTMLDocument(
	node *goquery.Document,
	url string,
) (*HTMLDocument, error)

func (*HTMLDocument) Clone added in v0.7.0

func (doc *HTMLDocument) Clone() core.Cloneable

func (*HTMLDocument) Close added in v0.7.0

func (doc *HTMLDocument) Close() error

func (*HTMLDocument) Compare

func (doc *HTMLDocument) Compare(other core.Value) int64

func (*HTMLDocument) Copy added in v0.7.0

func (doc *HTMLDocument) Copy() core.Value

func (*HTMLDocument) CountBySelector added in v0.7.0

func (doc *HTMLDocument) CountBySelector(ctx context.Context, selector drivers.QuerySelector) (values.Int, error)

func (*HTMLDocument) ExistsBySelector added in v0.7.0

func (doc *HTMLDocument) ExistsBySelector(ctx context.Context, selector drivers.QuerySelector) (values.Boolean, error)

func (*HTMLDocument) GetChildDocuments added in v0.8.0

func (doc *HTMLDocument) GetChildDocuments(_ context.Context) (*values.Array, error)

func (*HTMLDocument) GetChildNode added in v0.7.0

func (doc *HTMLDocument) GetChildNode(ctx context.Context, idx values.Int) (core.Value, error)

func (*HTMLDocument) GetChildNodes added in v0.7.0

func (doc *HTMLDocument) GetChildNodes(ctx context.Context) (*values.Array, error)

func (*HTMLDocument) GetElement added in v0.8.0

func (doc *HTMLDocument) GetElement() drivers.HTMLElement

func (*HTMLDocument) GetIn added in v0.7.0

func (doc *HTMLDocument) GetIn(ctx context.Context, path []core.Value) (core.Value, core.PathError)

func (*HTMLDocument) GetName added in v0.8.0

func (doc *HTMLDocument) GetName() values.String

func (*HTMLDocument) GetNodeName added in v0.8.0

func (doc *HTMLDocument) GetNodeName(_ context.Context) (values.String, error)

func (*HTMLDocument) GetNodeType added in v0.8.0

func (doc *HTMLDocument) GetNodeType(_ context.Context) (values.Int, error)

func (*HTMLDocument) GetParentDocument added in v0.8.0

func (doc *HTMLDocument) GetParentDocument(_ context.Context) (drivers.HTMLDocument, error)

func (*HTMLDocument) GetTitle added in v0.8.0

func (doc *HTMLDocument) GetTitle() values.String

func (*HTMLDocument) GetURL added in v0.7.0

func (doc *HTMLDocument) GetURL() values.String

func (*HTMLDocument) Hash added in v0.7.0

func (doc *HTMLDocument) Hash() uint64

func (*HTMLDocument) Iterate added in v0.7.0

func (doc *HTMLDocument) Iterate(_ context.Context) (core.Iterator, error)

func (*HTMLDocument) Length added in v0.7.0

func (doc *HTMLDocument) Length() values.Int

func (*HTMLDocument) MarshalJSON added in v0.7.0

func (doc *HTMLDocument) MarshalJSON() ([]byte, error)

func (*HTMLDocument) MoveMouseByXY added in v0.7.0

func (doc *HTMLDocument) MoveMouseByXY(_ context.Context, _, _ values.Float) error

func (*HTMLDocument) QuerySelector added in v0.7.0

func (doc *HTMLDocument) QuerySelector(ctx context.Context, selector drivers.QuerySelector) (core.Value, error)

func (*HTMLDocument) QuerySelectorAll added in v0.7.0

func (doc *HTMLDocument) QuerySelectorAll(ctx context.Context, selector drivers.QuerySelector) (*values.Array, error)

func (*HTMLDocument) Scroll added in v0.16.0

func (*HTMLDocument) ScrollBottom added in v0.7.0

func (doc *HTMLDocument) ScrollBottom(_ context.Context, _ drivers.ScrollOptions) error

func (*HTMLDocument) ScrollBySelector added in v0.7.0

func (*HTMLDocument) ScrollTop added in v0.7.0

func (doc *HTMLDocument) ScrollTop(_ context.Context, _ drivers.ScrollOptions) error

func (*HTMLDocument) SetIn added in v0.7.0

func (doc *HTMLDocument) SetIn(ctx context.Context, path []core.Value, value core.Value) core.PathError

func (*HTMLDocument) String added in v0.7.0

func (doc *HTMLDocument) String() string

func (*HTMLDocument) Type

func (doc *HTMLDocument) Type() core.Type

func (*HTMLDocument) Unwrap added in v0.7.0

func (doc *HTMLDocument) Unwrap() interface{}

func (*HTMLDocument) XPath added in v0.8.0

func (doc *HTMLDocument) XPath(ctx context.Context, expression values.String) (core.Value, error)

type HTMLElement

type HTMLElement struct {
	// contains filtered or unexported fields
}

func (*HTMLElement) Blur added in v0.9.0

func (el *HTMLElement) Blur(_ context.Context) error

func (*HTMLElement) BlurBySelector added in v0.9.0

func (el *HTMLElement) BlurBySelector(_ context.Context, _ drivers.QuerySelector) error

func (*HTMLElement) Clear added in v0.9.0

func (el *HTMLElement) Clear(_ context.Context) error

func (*HTMLElement) ClearBySelector added in v0.9.0

func (el *HTMLElement) ClearBySelector(_ context.Context, _ drivers.QuerySelector) error

func (*HTMLElement) Click added in v0.7.0

func (el *HTMLElement) Click(_ context.Context, _ values.Int) error

func (*HTMLElement) ClickBySelector added in v0.9.0

func (el *HTMLElement) ClickBySelector(_ context.Context, _ drivers.QuerySelector, _ values.Int) error

func (*HTMLElement) ClickBySelectorAll added in v0.9.0

func (el *HTMLElement) ClickBySelectorAll(_ context.Context, _ drivers.QuerySelector, _ values.Int) error

func (*HTMLElement) Close added in v0.7.0

func (el *HTMLElement) Close() error

func (*HTMLElement) Compare

func (el *HTMLElement) Compare(other core.Value) int64

func (*HTMLElement) Copy

func (el *HTMLElement) Copy() core.Value

func (*HTMLElement) CountBySelector

func (el *HTMLElement) CountBySelector(_ context.Context, selector drivers.QuerySelector) (values.Int, error)

func (*HTMLElement) ExistsBySelector

func (el *HTMLElement) ExistsBySelector(_ context.Context, selector drivers.QuerySelector) (values.Boolean, error)

func (*HTMLElement) Focus added in v0.8.0

func (el *HTMLElement) Focus(_ context.Context) error

func (*HTMLElement) FocusBySelector added in v0.9.0

func (el *HTMLElement) FocusBySelector(_ context.Context, _ drivers.QuerySelector) error

func (*HTMLElement) GetAttribute

func (el *HTMLElement) GetAttribute(ctx context.Context, name values.String) (core.Value, error)

func (*HTMLElement) GetAttributes

func (el *HTMLElement) GetAttributes(_ context.Context) (*values.Object, error)

func (*HTMLElement) GetChildNode

func (el *HTMLElement) GetChildNode(_ context.Context, idx values.Int) (core.Value, error)

func (*HTMLElement) GetChildNodes

func (el *HTMLElement) GetChildNodes(_ context.Context) (*values.Array, error)

func (*HTMLElement) GetIn added in v0.7.0

func (el *HTMLElement) GetIn(ctx context.Context, path []core.Value) (core.Value, core.PathError)

func (*HTMLElement) GetInnerHTML added in v0.8.0

func (el *HTMLElement) GetInnerHTML(_ context.Context) (values.String, error)

func (*HTMLElement) GetInnerHTMLBySelector added in v0.8.0

func (el *HTMLElement) GetInnerHTMLBySelector(ctx context.Context, selector drivers.QuerySelector) (values.String, error)

func (*HTMLElement) GetInnerHTMLBySelectorAll added in v0.8.0

func (el *HTMLElement) GetInnerHTMLBySelectorAll(ctx context.Context, selector drivers.QuerySelector) (*values.Array, error)

func (*HTMLElement) GetInnerText added in v0.8.0

func (el *HTMLElement) GetInnerText(_ context.Context) (values.String, error)

func (*HTMLElement) GetInnerTextBySelector added in v0.8.0

func (el *HTMLElement) GetInnerTextBySelector(ctx context.Context, selector drivers.QuerySelector) (values.String, error)

func (*HTMLElement) GetInnerTextBySelectorAll added in v0.8.0

func (el *HTMLElement) GetInnerTextBySelectorAll(ctx context.Context, selector drivers.QuerySelector) (*values.Array, error)

func (*HTMLElement) GetNextElementSibling added in v0.13.0

func (el *HTMLElement) GetNextElementSibling(_ context.Context) (core.Value, error)

func (*HTMLElement) GetNodeName added in v0.8.0

func (el *HTMLElement) GetNodeName(_ context.Context) (values.String, error)

func (*HTMLElement) GetNodeType added in v0.8.0

func (el *HTMLElement) GetNodeType(_ context.Context) (values.Int, error)

func (*HTMLElement) GetParentElement added in v0.13.0

func (el *HTMLElement) GetParentElement(_ context.Context) (core.Value, error)

func (*HTMLElement) GetPreviousElementSibling added in v0.13.0

func (el *HTMLElement) GetPreviousElementSibling(_ context.Context) (core.Value, error)

func (*HTMLElement) GetStyle added in v0.7.0

func (el *HTMLElement) GetStyle(ctx context.Context, name values.String) (core.Value, error)

func (*HTMLElement) GetStyles added in v0.7.0

func (el *HTMLElement) GetStyles(ctx context.Context) (*values.Object, error)

func (*HTMLElement) GetValue added in v0.7.0

func (el *HTMLElement) GetValue(_ context.Context) (core.Value, error)

func (*HTMLElement) Hash

func (el *HTMLElement) Hash() uint64

func (*HTMLElement) Hover added in v0.7.0

func (el *HTMLElement) Hover(_ context.Context) error

func (*HTMLElement) HoverBySelector added in v0.9.0

func (el *HTMLElement) HoverBySelector(_ context.Context, _ drivers.QuerySelector) error

func (*HTMLElement) Input added in v0.7.0

func (el *HTMLElement) Input(_ context.Context, _ core.Value, _ values.Int) error

func (*HTMLElement) InputBySelector added in v0.9.0

func (el *HTMLElement) InputBySelector(_ context.Context, _ drivers.QuerySelector, _ core.Value, _ values.Int) error

func (*HTMLElement) Iterate added in v0.7.0

func (el *HTMLElement) Iterate(_ context.Context) (core.Iterator, error)

func (*HTMLElement) Length

func (el *HTMLElement) Length() values.Int

func (*HTMLElement) MarshalJSON

func (el *HTMLElement) MarshalJSON() ([]byte, error)

func (*HTMLElement) Press added in v0.15.0

func (el *HTMLElement) Press(_ context.Context, _ []values.String, _ values.Int) error

func (*HTMLElement) PressBySelector added in v0.15.0

func (el *HTMLElement) PressBySelector(_ context.Context, _ drivers.QuerySelector, _ []values.String, _ values.Int) error

func (*HTMLElement) QuerySelector

func (el *HTMLElement) QuerySelector(_ context.Context, selector drivers.QuerySelector) (core.Value, error)

func (*HTMLElement) QuerySelectorAll

func (el *HTMLElement) QuerySelectorAll(_ context.Context, selector drivers.QuerySelector) (*values.Array, error)

func (*HTMLElement) RemoveAttribute added in v0.7.0

func (el *HTMLElement) RemoveAttribute(_ context.Context, name ...values.String) error

func (*HTMLElement) RemoveStyle added in v0.7.0

func (el *HTMLElement) RemoveStyle(ctx context.Context, name ...values.String) error

func (*HTMLElement) ScrollIntoView added in v0.7.0

func (el *HTMLElement) ScrollIntoView(_ context.Context, _ drivers.ScrollOptions) error

func (*HTMLElement) Select added in v0.7.0

func (el *HTMLElement) Select(_ context.Context, _ *values.Array) (*values.Array, error)

func (*HTMLElement) SelectBySelector added in v0.9.0

func (el *HTMLElement) SelectBySelector(_ context.Context, _ drivers.QuerySelector, _ *values.Array) (*values.Array, error)

func (*HTMLElement) SetAttribute added in v0.7.0

func (el *HTMLElement) SetAttribute(_ context.Context, name, value values.String) error

func (*HTMLElement) SetAttributes added in v0.7.0

func (el *HTMLElement) SetAttributes(ctx context.Context, attrs *values.Object) error

func (*HTMLElement) SetIn added in v0.7.0

func (el *HTMLElement) SetIn(ctx context.Context, path []core.Value, value core.Value) core.PathError

func (*HTMLElement) SetInnerHTML added in v0.8.0

func (el *HTMLElement) SetInnerHTML(_ context.Context, value values.String) error

func (*HTMLElement) SetInnerHTMLBySelector added in v0.8.0

func (el *HTMLElement) SetInnerHTMLBySelector(ctx context.Context, selector drivers.QuerySelector, innerHTML values.String) error

func (*HTMLElement) SetInnerText added in v0.8.0

func (el *HTMLElement) SetInnerText(_ context.Context, innerText values.String) error

func (*HTMLElement) SetInnerTextBySelector added in v0.8.0

func (el *HTMLElement) SetInnerTextBySelector(ctx context.Context, selector drivers.QuerySelector, innerText values.String) error

func (*HTMLElement) SetStyle added in v0.7.0

func (el *HTMLElement) SetStyle(ctx context.Context, name, value values.String) error

func (*HTMLElement) SetStyles added in v0.7.0

func (el *HTMLElement) SetStyles(ctx context.Context, newStyles *values.Object) error

func (*HTMLElement) SetValue added in v0.7.0

func (el *HTMLElement) SetValue(_ context.Context, value core.Value) error

func (*HTMLElement) String

func (el *HTMLElement) String() string

func (*HTMLElement) Type

func (el *HTMLElement) Type() core.Type

func (*HTMLElement) Unwrap

func (el *HTMLElement) Unwrap() interface{}

func (*HTMLElement) WaitForAttribute added in v0.7.0

func (el *HTMLElement) WaitForAttribute(_ context.Context, _ values.String, _ core.Value, _ drivers.WaitEvent) error

func (*HTMLElement) WaitForAttributeBySelector added in v0.16.0

func (el *HTMLElement) WaitForAttributeBySelector(_ context.Context, _ drivers.QuerySelector, _ values.String, _ core.Value, _ drivers.WaitEvent) error

func (*HTMLElement) WaitForAttributeBySelectorAll added in v0.16.0

func (el *HTMLElement) WaitForAttributeBySelectorAll(_ context.Context, _ drivers.QuerySelector, _ values.String, _ core.Value, _ drivers.WaitEvent) error

func (*HTMLElement) WaitForClass added in v0.7.0

func (el *HTMLElement) WaitForClass(_ context.Context, _ values.String, _ drivers.WaitEvent) error

func (*HTMLElement) WaitForClassBySelector added in v0.16.0

func (el *HTMLElement) WaitForClassBySelector(_ context.Context, _ drivers.QuerySelector, _ values.String, _ drivers.WaitEvent) error

func (*HTMLElement) WaitForClassBySelectorAll added in v0.16.0

func (el *HTMLElement) WaitForClassBySelectorAll(_ context.Context, _ drivers.QuerySelector, _ values.String, _ drivers.WaitEvent) error

func (*HTMLElement) WaitForElement added in v0.16.0

func (el *HTMLElement) WaitForElement(_ context.Context, _ drivers.QuerySelector, _ drivers.WaitEvent) error

func (*HTMLElement) WaitForElementAll added in v0.16.0

func (el *HTMLElement) WaitForElementAll(_ context.Context, _ drivers.QuerySelector, _ drivers.WaitEvent) error

func (*HTMLElement) WaitForStyle added in v0.7.0

func (el *HTMLElement) WaitForStyle(_ context.Context, _ values.String, _ core.Value, _ drivers.WaitEvent) error

func (*HTMLElement) WaitForStyleBySelector added in v0.16.0

func (el *HTMLElement) WaitForStyleBySelector(_ context.Context, _ drivers.QuerySelector, _ values.String, _ core.Value, _ drivers.WaitEvent) error

func (*HTMLElement) WaitForStyleBySelectorAll added in v0.16.0

func (el *HTMLElement) WaitForStyleBySelectorAll(_ context.Context, _ drivers.QuerySelector, _ values.String, _ core.Value, _ drivers.WaitEvent) error

func (*HTMLElement) XPath added in v0.8.0

func (el *HTMLElement) XPath(_ context.Context, expression values.String) (core.Value, error)

type HTMLPage added in v0.8.0

type HTMLPage struct {
	// contains filtered or unexported fields
}

func NewHTMLPage added in v0.8.0

func NewHTMLPage(
	qdoc *goquery.Document,
	url string,
	response drivers.HTTPResponse,
	cookies *drivers.HTTPCookies,
) (*HTMLPage, error)

func (*HTMLPage) CaptureScreenshot added in v0.8.0

func (p *HTMLPage) CaptureScreenshot(_ context.Context, _ drivers.ScreenshotParams) (values.Binary, error)

func (*HTMLPage) Close added in v0.8.0

func (p *HTMLPage) Close() error

func (*HTMLPage) Compare added in v0.8.0

func (p *HTMLPage) Compare(other core.Value) int64

func (*HTMLPage) Copy added in v0.8.0

func (p *HTMLPage) Copy() core.Value

func (*HTMLPage) DeleteCookies added in v0.8.0

func (p *HTMLPage) DeleteCookies(_ context.Context, _ *drivers.HTTPCookies) error

func (*HTMLPage) GetCookies added in v0.8.0

func (p *HTMLPage) GetCookies(_ context.Context) (*drivers.HTTPCookies, error)

func (*HTMLPage) GetFrame added in v0.8.0

func (p *HTMLPage) GetFrame(ctx context.Context, idx values.Int) (core.Value, error)

func (*HTMLPage) GetFrames added in v0.8.0

func (p *HTMLPage) GetFrames(ctx context.Context) (*values.Array, error)

func (*HTMLPage) GetIn added in v0.8.0

func (p *HTMLPage) GetIn(ctx context.Context, path []core.Value) (core.Value, core.PathError)

func (*HTMLPage) GetMainFrame added in v0.8.0

func (p *HTMLPage) GetMainFrame() drivers.HTMLDocument

func (*HTMLPage) GetResponse added in v0.10.0

func (p *HTMLPage) GetResponse(_ context.Context) (drivers.HTTPResponse, error)

func (*HTMLPage) GetURL added in v0.8.0

func (p *HTMLPage) GetURL() values.String

func (*HTMLPage) Hash added in v0.8.0

func (p *HTMLPage) Hash() uint64

func (*HTMLPage) IsClosed added in v0.8.0

func (p *HTMLPage) IsClosed() values.Boolean

func (*HTMLPage) Iterate added in v0.8.0

func (p *HTMLPage) Iterate(ctx context.Context) (core.Iterator, error)

func (*HTMLPage) Length added in v0.8.0

func (p *HTMLPage) Length() values.Int

func (*HTMLPage) MarshalJSON added in v0.8.0

func (p *HTMLPage) MarshalJSON() ([]byte, error)

func (*HTMLPage) Navigate added in v0.8.0

func (p *HTMLPage) Navigate(_ context.Context, _ values.String) error

func (*HTMLPage) NavigateBack added in v0.8.0

func (p *HTMLPage) NavigateBack(_ context.Context, _ values.Int) (values.Boolean, error)

func (*HTMLPage) NavigateForward added in v0.8.0

func (p *HTMLPage) NavigateForward(_ context.Context, _ values.Int) (values.Boolean, error)

func (*HTMLPage) PrintToPDF added in v0.8.0

func (p *HTMLPage) PrintToPDF(_ context.Context, _ drivers.PDFParams) (values.Binary, error)

func (*HTMLPage) SetCookies added in v0.8.0

func (p *HTMLPage) SetCookies(_ context.Context, _ *drivers.HTTPCookies) error

func (*HTMLPage) SetIn added in v0.8.0

func (p *HTMLPage) SetIn(ctx context.Context, path []core.Value, value core.Value) core.PathError

func (*HTMLPage) String added in v0.8.0

func (p *HTMLPage) String() string

func (*HTMLPage) Subscribe added in v0.16.0

func (p *HTMLPage) Subscribe(_ context.Context, _ events.Subscription) (events.Stream, error)

func (*HTMLPage) Type added in v0.8.0

func (p *HTMLPage) Type() core.Type

func (*HTMLPage) Unwrap added in v0.8.0

func (p *HTMLPage) Unwrap() interface{}

func (*HTMLPage) WaitForFrameNavigation added in v0.12.0

func (p *HTMLPage) WaitForFrameNavigation(_ context.Context, _ drivers.HTMLDocument, _ values.String) error

func (*HTMLPage) WaitForNavigation added in v0.8.0

func (p *HTMLPage) WaitForNavigation(_ context.Context, _ values.String) error

type Option

type Option func(opts *Options)

func WithAllowedHTTPCode added in v0.10.0

func WithAllowedHTTPCode(httpCode int) Option

func WithAllowedHTTPCodes added in v0.10.0

func WithAllowedHTTPCodes(httpCodes []int) Option

func WithConcurrency

func WithConcurrency(value int) Option

func WithCookie added in v0.9.0

func WithCookie(cookie drivers.HTTPCookie) Option

func WithCookies added in v0.9.0

func WithCookies(cookies []drivers.HTTPCookie) Option

func WithCustomName added in v0.9.0

func WithCustomName(name string) Option

func WithCustomTransport added in v0.14.0

func WithCustomTransport(transport *stdhttp.Transport) Option

func WithDefaultBackoff

func WithDefaultBackoff() Option

func WithExponentialBackoff

func WithExponentialBackoff() Option

func WithHeader added in v0.9.0

func WithHeader(name string, value []string) Option

func WithHeaders added in v0.9.0

func WithHeaders(headers *drivers.HTTPHeaders) Option

func WithLinearBackoff

func WithLinearBackoff() Option

func WithMaxRetries

func WithMaxRetries(value int) Option

func WithProxy

func WithProxy(address string) Option

func WithTimeout added in v0.16.2

func WithTimeout(duration time.Duration) Option

func WithUserAgent

func WithUserAgent(value string) Option

type Options

type Options struct {
	*drivers.Options
	Backoff         pester.BackoffStrategy
	MaxRetries      int
	Concurrency     int
	HTTPCodesFilter []compiledStatusCodeFilter
	HTTPTransport   *stdhttp.Transport
	Timeout         time.Duration
}

func NewOptions added in v0.14.1

func NewOptions(setters []Option) *Options

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL