如何在Salesforce中动态选择框架?

时间:2019-03-25 19:02:56

标签: selenium xpath salesforce kantu

我正在尝试使用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。

有人可以帮忙吗?

谢谢

1 个答案:

答案 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的输入。但是第一个建议要容易得多,应该可以。