1

目前使用 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 找到。

4

1 回答 1

0

var frame = new Web.Frame();只是一个空的Frame,难怪frame.Find什么都不返回。

实例化Frame需要伴随框架描述,一个独特的,只有这样你才能Find在其中做任何事情

于 2020-03-25T08:04:11.690 回答