Проблемы по автоматизации MSD365 с селеном - PullRequest
0 голосов
/ 01 ноября 2018

Я пытался автоматизировать Dynamics365 с помощью Selenium, но столкнулся с множеством проблем, таких как

  1. Использовал 'Id' в качестве локатора элемента, но он постоянно меняется в разных случаях
  2. Локатор элементов «Имя» работает не во всех случаях
  3. Xpath поставляется с добавлением 'id', поэтому он также динамический

Из-за всего этого я не могу запустить код в IE, но код работает в Chrome.

Может кто-нибудь помочь с проблемой?

1 Ответ

0 голосов
/ 02 ноября 2018

Я рекомендую вам использовать EasyRepro . Это проект C # от MS в Github, который построен на основе Selenium и является фреймворком, позволяющим вам сосредоточиться на написании значимых тестов вместо изучения Selenium и сложных DOM в D365. Позволяет обращаться к объектам формы по имени схемы. Когда вы загружаете проект, он загружается тоннами замечательных примеров, которые вы можете запустить, чтобы протестировать все различные формы и изменить их в соответствии со своими потребностями.

Например, вы можете проверить создание контакта, используя простой код, подобный следующему:

            xrmBrowser.LoginPage.Login(_xrmUri, _username, _password);
            xrmBrowser.GuidedHelp.CloseGuidedHelp();

            xrmBrowser.ThinkTime(500);
            xrmBrowser.Navigation.OpenSubArea("Sales", "Contacts");

            xrmBrowser.ThinkTime(1000);
            xrmBrowser.Grid.SwitchView("Active Contacts");

            xrmBrowser.ThinkTime(2000);
            xrmBrowser.CommandBar.ClickCommand("New");

            xrmBrowser.ThinkTime(5000);

            var fields = new List<Field>
            {
                new Field() {Id = "firstname", Value = "Test"},
                new Field() {Id = "lastname", Value = "Contact"}
            };
            xrmBrowser.Entity.SetValue(new CompositeControl() { Id = "fullname", Fields = fields});
            xrmBrowser.Entity.SetValue("emailaddress1", "test@contoso.com");
            xrmBrowser.Entity.SetValue("mobilephone", "555-555-5555");
            xrmBrowser.Entity.SetValue("birthdate", DateTime.Parse("11/1/1980"));
            xrmBrowser.Entity.SetValue(new OptionSet { Name = "preferredcontactmethodcode", Value = "Email"});

            xrmBrowser.CommandBar.ClickCommand("Save");
...