我正在尝试使用Salesforce中的Kantu自动化脚本。 基本上,我会通过一些下拉ID并选择正确的值,如果selectFrame值在开始时是正确的,那么一切都会正常。
问题在于,每次刷新页面或打开新案例时,Salesforce都会刷新iframe ID(即ext-comp-1018 | ext-comp-1035 | ext-comp-1048等)
由于脚本无法识别框架(因为框架始终在变化),因此它将无法继续执行其余操作。
{
"Name": "SFDC_Auto",
"CreationDate": "2019-3-25",
"Commands": [
{
"Command": "selectFrame",
"Target": "id=ext-comp-1018",
"Value": ""
},
{
"Command": "select",
"Target": "id=cas5",
"Value": "label=Escalation"
},
我看到一个post提到这将是解决方案,但是我不确定如何在Kantu中实现它: 框架= @ driver.find_elements(:xpath,'// iframe [starts-with(@ id,ext- comp-)]')@ driver.switch_to.frame框架1
到目前为止,我可以完成这项工作:xpath = // iframe [starts-with(@ id,ext-comp-)],但是它什么也不做。它显示为“ ok”,但随后在下一步中停下来,说无法识别ID CAS5。
有人可以帮忙吗?
谢谢
答案 0 :(得分:0)
问题是Salesforce刷新iframe ID
除了iframe ID外,您还可以在select frame中使用iframe index = 0(或1,2,..)。即使ID发生变化,它也应保持不变:
open | https://a9t9.com/kantu/demo/iframes
selectFrame | relative=top
selectFrame | index=0
click | css=button.ytp-large-play-button.ytp-button
作为替代解决方案,您是否考虑过使用XClick (image)
或XClick (ocr=text)
。由于这些命令在视觉上有效,因此避免了找到正确的iframe;-)
这里是一个论坛帖子,使用该方法来解决对iframe中的YouTube视频的点击:
https://forum.a9t9.com/t/embedded-video-problem/1324/2
截屏视频: https://www.youtube.com/watch?v=4aNs9BnsodA
第三种方法是使用sourceExtract
在源代码中找到新的帧ID,将其提取,然后将其用作selectFrame的输入。但是第一个建议要容易得多,应该可以。