Javascript 使用Robot框架在页面上滚动到定位器
我一直在用java/java脚本编写的页面上使用robot框架。我试图滚动到一个定位器,使其在页面上可见,以便能够验证其文本值。我确实根据我的问题遵循了这个QA,并找到了一个解决方案,但它给我带来了一个例外 页面上要滚动到的我的定位器:Javascript 使用Robot框架在页面上滚动到定位器,javascript,robotframework,Javascript,Robotframework,我一直在用java/java脚本编写的页面上使用robot框架。我试图滚动到一个定位器,使其在页面上可见,以便能够验证其文本值。我确实根据我的问题遵循了这个QA,并找到了一个解决方案,但它给我带来了一个例外 页面上要滚动到的我的定位器: ${CLAIMS} xpath=//*[@id="generalAndIncidents:relatedAlertsPanel:idPreviousClaimsList"] 执行滚动的My关键字(它有一个用于加载定位器变量的参数):
${CLAIMS} xpath=//*[@id="generalAndIncidents:relatedAlertsPanel:idPreviousClaimsList"]
执行滚动的My关键字(它有一个用于加载定位器变量的参数):
运行时,我收到以下异常:
20:36:17.376 INFO Executing JavaScript:
window.document.evaluate("xpath=//*[@id="generalAndIncidents:relatedAlertsPanel:idPreviousClaimsList"]", document.body, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.scrollIntoView(true);
Without any arguments.
20:36:17.758 FAIL JavascriptException: Message: javascript error: missing ) after argument list
(Session info: MicrosoftEdge=86.0.622.69)
我还检查了此页面,查看此java脚本代码片段的“操作方法”:
你能告诉我从哪里开始调试吗?我做错了什么?这是不是因为我错过了逃跑的机会
多谢各位
更新#1:这可能与名称空间解析器有关吗
更新#2:
Scroll To Element
[Arguments] ${scroll_to_element}
${x} = Get Horizontal Position ${scroll_to_element}
${y} = Get Vertical Position ${scroll_to_element}
Execute Javascript window.scrollTo(${x}, ${y})
Scroll Loop Click
[Arguments] ${locator}
FOR ${index} IN RANGE 1 10
Sleep 0.5s
${isElementVisible} = Run Keyword and Return Status Click Element ${locator}
Run Keyword If '${isElementVisible}'!='True' Wait Until Keyword Succeeds 6s 2s Scroll To Element ${locator}
Log ${isElementVisible}
Exit For Loop If '${isElementVisible}'=='True'
END
Wait Until Element is Visible ${locator}
你可以试试下面的代码,这是目前为我工作。早就从Stackoverflow得到了这个解决方案
Scroll To Element
[Arguments] ${locator}
${x}= Get Horizontal Position ${locator}
${y}= Get Vertical Position ${locator}
Execute Javascript window.scrollTo(${x}, ${y})
字符串使用双引号,并且还包含双引号。这可能至少是问题的一部分。你好,布莱恩,非常感谢。这可能是我的问题之一,因为当我省略双引号时,我收到以下错误:FAIL InvalidElementStateException:消息:无效元素状态:未能对“Document”执行“evaluate”:字符串“xpath://*[@id=generalAndIncidents:relatedAlertsPanel]/div[1]/span”不是有效的xpath表达式。嗨,Manish!非常感谢您的投入!它确实有用!虽然我的案例有点特殊,因为它仍然不会滚动到元素。原因是,它可能已经是可见的,即使它不是光学可见的。所以我做了一个循环来检查点击动作。但是你提供的代码太棒了!我已在第一篇文章中插入了我的函数。:)
Scroll To Element
[Arguments] ${locator}
${x}= Get Horizontal Position ${locator}
${y}= Get Vertical Position ${locator}
Execute Javascript window.scrollTo(${x}, ${y})