Как взаимодействовать с iFrames в Salesforce? - PullRequest
1 голос
/ 23 марта 2020

В настоящее время разрабатывается автоматизация для Salesforce с использованием LeanFT v12.54 и Visual Studio 2012 (с использованием C#). Работа с Chrome Версия 80.0.3987.149 (Официальная сборка) (64-разрядная версия). В Windows 10.

я создаю модель приложения для вкладки Контракты в Salesforce (в частности, Документы контракта) и заметил, что большая часть этого раздела содержится в iframe, который I можно определить в консоли разработчика, используя 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. Мне удалось захватить xpath для элементов внутри iframe с помощью инструментов Chrome dev, но когда я запускаю их в консоли , они не возвращают совпадений , если я сначала не разверну элемент iframe под элементом Вкладка Elements, , после которой мой xpath вернет совпадение .

Так что я не уверен, почему мой вызов Find() не работает, и мне нужно найти способ взаимодействия с элементами в iFrame последовательно используя xpaths.

Редактировать: я пытался изменить свой код C#, чтобы создать новый объект типа Web.WebElement вместо Web.Frame и, используя тот же xpath, он может найти его как веб-элемент, но не как фрейм.

1 Ответ

0 голосов
/ 25 марта 2020

var frame = new Web.Frame(); это просто пустое Frame, что неудивительно frame.Find ничего не возвращает.

Создание экземпляра Frame должно сопровождаться описанием кадра , уникальный, и только тогда вы сможете Find что-нибудь в нем

...