Не удалось найти NgModel

    driver.FindElement(By.XPath("//textarea[@ng-model='vm.system.systemdescription']")).SendKeys("abc"); //is able to find element. 
Whereas if do same thing using ngDriver i'm getting 

> async timeout exception or javascript Invalid operation exception 

    ngDriver.FindElement(NgBy.Model("vm.system.systemdescription")).SendKeys("jkgf"); 


Also tried the following but doesn't help
ngDriver.FindElement(NgByModel.Name("vm.system.systemdescription")).SendKeys("jkgf"); also does not work.                                            

Here is d code snippet                                                                              private IWebDriver driver = new InternetExplorerDriver();
        private NgWebDriver ngDriver;
        private WebDriverWait wait;
        private Actions actions;
        private int wait_seconds = 30;

        [SetUp]
        public void InitializeBrowserToSearchEngine()
        {                   ngDriver = new NgWebDriver(driver);
            driver.Navigate().GoToUrl("req_url");
             driver.Manage().Timeouts().SetScriptTimeout(TimeSpan.FromSeconds(60));
            ngDriver = new NgWebDriver(driver);
wait = new WebDriverWait(driver, TimeSpan.FromSeconds(wait_seconds));
            actions = new Actions(driver);
            Console.WriteLine("Opened Browser with the given URL");
        }
[Test]
        [Order(6)]
        public void OpenNewSystemConfig()
        {
            string url = "req_url";
            ngDriver.Url = url;
            WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
            WebDriverWait w1 = new WebDriverWait(ngDriver, TimeSpan.FromSeconds(10));
            wait.Until(ExpectedConditions.VisibilityOfAllElementsLocatedBy(By.Id("Administration_1")));
            driver.FindElement(By.Id("Administration_1")).Click();
            wait.Until(ExpectedConditions.VisibilityOfAllElementsLocatedBy(By.Id("System_Configuration_0")));
            driver.FindElement(By.Id("System_Configuration_0")).Click();

            wait.Until(ExpectedConditions.VisibilityOfAllElementsLocatedBy(By.XPath("//textarea[@ng-model='vm.system.systemdescription']")));
            Thread.Sleep(5000);
            driver.FindElement(By.XPath("//textarea[@ng-model='vm.system.systemdescription']")).SendKeys("ijfk");
            //w1.Until(ExpectedConditions.VisibilityOfAllElementsLocatedBy(NgBy.Model("vm.system.systemdescription")));
            //ngDriver.FindElement(NgBy.Model("vm.system.systemdescription")).SendKeys("jkgf"); ;

            wait.Until(ExpectedConditions.VisibilityOfAllElementsLocatedBy(By.XPath("//select[@data-ng-model='vm.system.SystemTypeId']")));
            driver.FindElement(By.XPath("//select[@data-ng-model='vm.system.SystemTypeId']"));
            //wait.Until(ExpectedConditions.VisibilityOfAllElementsLocatedBy(NgBy.Model("vm.system.systemdescription")));
            //ngDriver.FindElement(NgByModel.Name("vm.system.SystemTypeId"));
            // ngDriver.FindElement(NgByModel.ClassName("form-control ng-pristine ng-untouched ng-valid ng-not-empty ng-valid-required"));
               }

Закомментированный код не работает. Мне нужно использовать транспортир, чтобы найти элементы по ng-model и ng-binding. Поскольку Xpath не используется, мне нужен способ найти элемент, у которого нет идентификатора, а компоненты angular можно найти с помощью локаторов, таких как ng-model и ng-binding. Также я добавил транспортир в ссылку с помощью диспетчера пакетов nuget, пожалуйста, помогите решить


person Ramya Sudarshan    schedule 21.11.2016    source источник
comment
Вы установили транспортир для пакета .net, используя Install-Package Protractor?   -  person Sudharsan Selvaraj    schedule 21.11.2016
comment
Если возможно, вставьте html-фрагмент элемента.   -  person lauda    schedule 21.11.2016
comment
‹textarea class=form-control ng-valid ng-not-empty ng-dirty ng-valid-parse ng-touched rows=5 ng-model=vm.system.systemdescription›ijfk‹/textarea›   -  person Ramya Sudarshan    schedule 21.11.2016
comment
Я уже установил транспортир для пакета .net, используя Install-Package Protractor.   -  person Ramya Sudarshan    schedule 21.11.2016
comment
‹textarea class=form-control ng-pristine ng-untouched ng-valid ng-empty ng-model=vm.system.systemdescription rows=5›‹/textarea›   -  person Ramya Sudarshan    schedule 21.11.2016


Ответы (1)


просто попробуй element(by.model("vm.system.systemdescription")).sendKeys('jkgf);

У вас есть опечатка в вашей команде. sendKeys должен начинаться с маленькой буквы «s», а не «S».

Надеюсь это поможет..

person radio_head    schedule 21.11.2016
comment
Спасибо @Danny. Но опечаток нет. В C# только верхний регистр — в соответствии со стандартом кодирования паскаля. - person Ramya Sudarshan; 21.11.2016
comment
ngDriver.FindElement(NgByModel.Name(vm.system.systemdescription)).SendKeys(jkgf); также не работает. - person Ramya Sudarshan; 24.11.2016