1
0
mirror of https://github.com/MontFerret/ferret.git synced 2025-08-15 20:02:56 +02:00

Fixed element not found error (#724)

This commit is contained in:
Tim Voronov
2022-01-17 10:24:27 -05:00
committed by GitHub
parent 64f086a4a6
commit 8d8afed51f
6 changed files with 40 additions and 10 deletions

View File

@@ -0,0 +1,8 @@
LET url = @lab.cdn.dynamic
LET doc = DOCUMENT(url, { driver: "cdp" })
LET el = ELEMENT(doc, "#do-not-exist")
T::NONE(el)
RETURN TRUE

View File

@@ -0,0 +1,8 @@
LET url = @lab.cdn.dynamic
LET doc = DOCUMENT(url, true)
LET el = ELEMENT(doc, X("//*[@id='do-not-exist']"))?
T::NONE(el)
RETURN TRUE

View File

@@ -0,0 +1,8 @@
LET doc = DOCUMENT(@lab.cdn.dynamic + "/#/lists", { driver:"cdp" })
LET current = ELEMENT(doc, "body")
T::NOT::NONE(current)
LET next = current.nextElementSibling
T::NONE(next)
RETURN NONE

View File

@@ -0,0 +1,8 @@
LET doc = DOCUMENT(@lab.cdn.dynamic + "/#/lists", { driver:"cdp" })
LET current = ELEMENT(doc, 'head')
T::NOT::NONE(current)
LET prev = current.previousElementSibling
T::NONE(prev)
RETURN NONE

View File

@@ -98,13 +98,17 @@ func (rt *Runtime) EvalValue(ctx context.Context, fn *Function) (core.Value, err
return rt.resolver.ToValue(ctx, out)
}
func (rt *Runtime) EvalElement(ctx context.Context, fn *Function) (drivers.HTMLElement, error) {
func (rt *Runtime) EvalElement(ctx context.Context, fn *Function) (core.Value, error) {
ref, err := rt.EvalRef(ctx, fn)
if err != nil {
return nil, err
}
if ref.ObjectID == nil {
return values.None, nil
}
return rt.resolver.ToElement(ctx, ref)
}

View File

@@ -14,27 +14,21 @@ const (
)
var (
queryCSSSelector = fmt.Sprintf(`
queryCSSSelector = `
(el, selector) => {
const found = el.querySelector(selector);
%s
return found;
}
`,
notFoundErrorFragment,
)
`
queryXPathSelector = fmt.Sprintf(`
(el, selector) => {
%s
%s
return found;
}
`,
xpathAsElementFragment, notFoundErrorFragment,
xpathAsElementFragment,
)
)