mirror of
https://github.com/MontFerret/ferret.git
synced 2025-11-06 08:39:09 +02:00
Feature/#220 iframe support (#315)
* Refactored Virtual DOM structure * Added new E2E tests * Updated E2E Test Runner
This commit is contained in:
@@ -2,8 +2,52 @@ package drivers
|
||||
|
||||
import (
|
||||
"context"
|
||||
"github.com/MontFerret/ferret/pkg/runtime/core"
|
||||
)
|
||||
|
||||
func WithDefaultTimeout(ctx context.Context) (context.Context, context.CancelFunc) {
|
||||
return context.WithTimeout(ctx, DefaultTimeout)
|
||||
}
|
||||
|
||||
func ToPage(value core.Value) (HTMLPage, error) {
|
||||
err := core.ValidateType(value, HTMLPageType)
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return value.(HTMLPage), nil
|
||||
}
|
||||
|
||||
func ToDocument(value core.Value) (HTMLDocument, error) {
|
||||
switch v := value.(type) {
|
||||
case HTMLPage:
|
||||
return v.GetMainFrame(), nil
|
||||
case HTMLDocument:
|
||||
return v, nil
|
||||
default:
|
||||
return nil, core.TypeError(
|
||||
value.Type(),
|
||||
HTMLPageType,
|
||||
HTMLDocumentType,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
func ToElement(value core.Value) (HTMLElement, error) {
|
||||
switch v := value.(type) {
|
||||
case HTMLPage:
|
||||
return v.GetMainFrame().GetElement(), nil
|
||||
case HTMLDocument:
|
||||
return v.GetElement(), nil
|
||||
case HTMLElement:
|
||||
return v, nil
|
||||
default:
|
||||
return nil, core.TypeError(
|
||||
value.Type(),
|
||||
HTMLPageType,
|
||||
HTMLDocumentType,
|
||||
HTMLElementType,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user