目前使用 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")
。
在我的 C# 代码中,我正在实例化一个新对象,Web.Frame()
然后Find()
使用上面的 xpath 调用,但它返回 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()
调用失败了,我需要找到一种方法来始终使用 xpaths 与 iFrame 中的元素进行交互。
编辑:我尝试更改我的 C# 代码以实例化类型为 Web.WebElement 而不是 Web.Frame 的新对象,并使用相同的 xpath 它能够将其作为 WebElement 而不是作为 Frame 找到。