Я использую селен с C#. Браузер Chrome версия 80. Я использую веб-сайт Microsoft Dynamics CRM 2013 v8.1. Я пытаюсь закрыть диалоговое окно, которое появляется при нажатии кнопки-переключателя. У меня проблема в том, что я не могу найти кнопку, чтобы нажать OK и подтвердить диалог, чтобы закрыть его.
Я попытался войти в chrome и использовать полную копию XPath. Я также использовал идентификатор для кнопки. Эти методы выдавали ошибку, говоря, что не может найти этот элемент. Я решил, что мне нужно изменить фокус фрейма. Когда я посмотрел страницу, выкинул гугл chrome инспектор, у фреймов есть имена. Я переключился на нужный мне фрейм, но селен все еще не мог найти фрейм. Я попытался перехватить iframe и кнопку с помощью id, но безуспешно.
Я включу свой тестовый код ниже.
В резюме Я думаю, что мне нужно изменить фокус фрейма, чтобы получить кнопку, которую я ищу, но ни у одного из фреймов нет имен, которые они имеют в DOM. Любые мысли или предложения.
public void TestCase()
{
using (var xrmBrowser = new Api.Browser(TestSettings.Options))
{
xrmBrowser.LoginPage.Login(_xrmUri, _username, _password);
xrmBrowser.Navigation.OpenSubArea("Client Services", "Cases");
xrmBrowser.Grid.SwitchView("Active Cases");
xrmBrowser.CommandBar.ClickCommand("New Case");
xrmBrowser.ThinkTime(4000);
// Populate Form
xrmBrowser.Entity.SetValue("title", "Test API Case");
xrmBrowser.Entity.SetValue("casetypecode", "Request");
xrmBrowser.Entity.SetValue("caseorigincode", "Phone");
xrmBrowser.Entity.SelectLookup("customerid", 0);
xrmBrowser.Entity.SetValue("new_anonymousclient", true);
xrmBrowser.ThinkTime(100);
// xrmBrowser.Driver.SwitchTo().Frame(2);
// xrmBrowser.Driver.FindElement(By.XPath("/html/body/div/div[2]/button[1]")).Click();
var iframes = xrmBrowser.Driver.FindElements(By.TagName("iframe"));
var iframeName = "";
foreach (var iframe in iframes)
{
// My attempt at getting iframe names. These are all blank but contain 4 iframes.
iframeName = iframe.GetAttribute("name");
}
xrmBrowser.ThinkTime(100);
// LABEL btnOK
xrmBrowser.CommandBar.ClickCommand("Save");
xrmBrowser.ThinkTime(1000);
}
}
PS> Я использую EasyRepro, но не смог закрыть этот всплывающий диалог. В инспекторе chrome я могу получить доступ к кнопке и нажать ее через JS.