Angularjs 量角器网络,非角度登录页面

Angularjs 量角器网络,非角度登录页面,angularjs,protractor-net,Angularjs,Protractor Net,使用量角器网络,登录页面是非角度的,其中主页是角度的。因此,无法使用NgWebDriver启动带有url的浏览器,可能是因为它在寻找角度。已尝试angular.ignoreSynchronization=“false”。但同样的问题。如果我使用angDriver.WrappedDriver.FindElement交叉登录,主页中的角度对象将无法识别-Asynchronous脚本错误超时 driver = new ChromeDriver("C:\\FTWork\\DriverFiles\\chr

使用量角器网络,登录页面是非角度的,其中主页是角度的。因此,无法使用
NgWebDriver
启动带有
url
的浏览器,可能是因为它在寻找角度。已尝试
angular.ignoreSynchronization=“false”
。但同样的问题。如果我使用
angDriver.WrappedDriver.FindElement
交叉登录,主页中的角度对象将无法识别-
Asynchronous
脚本错误超时

driver = new ChromeDriver("C:\\FTWork\\DriverFiles\\chromedriver_win32\\");
driver.Manage().Timeouts().SetScriptTimeout(TimeSpan.FromSeconds(20));
angDriver = new NgWebDriver(driver,"[ng-app='Phoenix']");
string root=angDriver.RootElement;
angDriver.WrappedDriver.Navigate().GoToUrl(url);
angDriver.WrappedDriver.Manage().Window.Maximize();
driver = angDriver.WrappedDriver;
driver.FindElement(By.Id("UserID")).Clear();
driver.FindElement(By.Id("UserID")).SendKeys("");
driver.FindElement(By.Id("Password")).SendKeys("");
driver.FindElement(By.Id("searchsubmit")).Click();
System.Threading.Thread.Sleep(10000);
string dolAmt = angDriver.FindElement(NgBy.Binding("activeValue")).Text;

我希望这能做到

_driver = new ChromeDriver("C:\\FTWork\\DriverFiles\\chromedriver_win32\\");
_driver.Manage().Timeouts().SetScriptTimeout(TimeSpan.FromSeconds(10));;
//Do whatever for log in with chrome driver

string url = "url for angular page";
_ngWebDriver = new NgWebDriver(_driver, "[ng-app='Phoenix']");
//You have to naviagate to url in order the _ngWebDriver to know the angular page NOT click and go to angular page
_ngWebDriver.Navigate().GoToUrl(url);
_ngWebDriver.Manage().Window.Maximize();
//The script timeout is almost essential since most of protractor mechanism are dependent of client side script.    

//start finding elements with NgBy class
NgWebElement ngElement = _ngWebDriver.FindElement(NgBy.Model("model"));
ngElement.Clear();
编辑

driver = new ChromeDriver("C:\\FTWork\\DriverFiles\\chromedriver_win32\\");
driver.Manage().Timeouts().SetScriptTimeout(TimeSpan.FromSeconds(20));
driver.FindElement(By.Id("UserID")).Clear();
driver.FindElement(By.Id("UserID")).SendKeys("");
driver.FindElement(By.Id("Password")).SendKeys("");
driver.FindElement(By.Id("searchsubmit")).Click();


// Phoenix is the ng-app of the coming angular page
string url = "url for angular page containing [ng-app='Phoenix']"
NgWebDriver angDriver = new NgWebDriver(driver,"[ng-app='Phoenix']");

// don't switch to wrapper driver
angDriver.Navigate().GoToUrl(url);
angDriver.Manage().Window.Maximize();
driver = angDriver.WrappedDriver;
string dolAmt = angDriver.FindElement(NgBy.Binding("activeValue")).Text;

我很清楚你面对的是什么。是否有可能共享您的登录名,以及您如何导航到角度页面对象?@Saifur-抱歉,无法透露登录名,但ng应用程序是在其中的html标记和正文中定义的-但当我们执行rootElement时-正文显示@Saifur昨天尝试了与上述相同的操作,直接给出了角度页面url。但是在登录之前被提示是非角度的,在那里它失败了。我们是否需要传递SetScriptTimeout或SetPageLoadTimeout,就像它的SetPage一样。您是使用
IwebDriver
登录页面还是使用
NgWebDriver
?并且,您正在使用PageObject模式吗?如果我尝试加载angular作为登录显示的驱动程序,则此步骤失败。Navigate().GoToUrl(url);InvstPortal.Navigation.TestLogin:设置:System.InvalidOperationException:在页面上找不到Angular-“Angular URL”也在登录页面Angular页面?不,登录不是Angular,因此出现错误。但尝试导航到Angular URL时显示登录。我想,这就是前几页中其他角度物体被识别的修复方法。所以我必须使用angDriver.WrappedDriver来启动页面。