目前正在使用LeanFT v12.54和Visual Studio 2012(使用C#(针对Salesforce开发自动化。使用Chrome版本80.0.3987.149(官方版本((64位(。在Windows 10。
我正在为Salesforce中的Contracts选项卡(特别是Contract Documents(构建一个应用程序模型,并注意到该部分的大部分内容都包含在iframe中,我可以使用xpath("//ARTICLE[normalize-space()='Contract Documents']//IFRAME")
在开发控制台中识别该iframe。
在我的C#代码中,我实例化了Web.Frame()
的一个新对象,然后使用上面的xpath调用Find()
,但它返回false:
var frame = new Web.Frame();
string xpath = "//ARTICLE[normalize-space()='Contract Documents']//IFRAME";
if (frame.Find(xpath))
return true;
else
return false;
其他注意事项:如果我在此页面上使用LeanFT对象识别中心工具,它将无法穿透iFrame中的任何对象。我已经能够使用Chrome开发工具为iframe中的元素捕获xpath,但当我在控制台中运行它们时,它们不会返回任何匹配项,除非我首先在elements选项卡下展开iframe元素,然后我的xpath将返回匹配项。
因此,我不确定Find()
调用失败的原因,我需要找到一种方法,使用xpath与iFrame中的元素进行一致的交互。
编辑:我尝试更改我的C#代码,以实例化一个类型为Web.WebElement而不是Web.Frame的新对象,并使用相同的xpath,它可以将其作为WebElement而不是Frame找到。
var frame = new Web.Frame();
只是一个空的Frame
,难怪frame.Find
什么都不返回。
Frame
的实例化需要附带帧描述,这是一个唯一的描述,只有这样你才能Find
中的任何东西