C# Selenium无法访问网页上的任何元素

C# Selenium无法访问网页上的任何元素,c#,angularjs,selenium,C#,Angularjs,Selenium,我正在用C#编写Selenium测试,使用Specflow和Nunit为我正在处理的一个新项目编写,并且正文中的任何内容都不能在任何地方选择 我可以使用 WaitUntil(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementIsVisible(By.CssSelector("body"))); 但是,无法以下工作和Thre元素未发现异常: WaitUntil(SeleniumExtras.WaitHelpers.Ex

我正在用C#编写Selenium测试,使用Specflow和Nunit为我正在处理的一个新项目编写,并且
正文
中的任何内容都不能在任何地方选择

可以使用

WaitUntil(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementIsVisible(By.CssSelector("body")));
但是,无法以下工作和Thre元素未发现异常:

WaitUntil(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementIsVisible(By.CssSelector("halo-root")));
WaitUntil(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementIsVisible(By.CssSelector("halo-entry")));`
WaitUntil(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementIsVisible(By.CssSelector("halo-navigation-container")));

错误:没有这样的元素:无法定位元素:{“方法”:“css选择器”,“选择器”:“halo根”}

  • 没有iFrame
  • 我尝试了长时间的等待,以确保它不是异步的
  • 该网站是angular.js(我尝试了一些量角器方法,但没有成功)
  • 我还玩过
    ElementIsVisible
    ElementIsClickable
    等游戏
  • 我尝试了不同的选择器(id、类名、xpath等)
感谢您的帮助


p、 s无法共享整个SUT,因为它需要vpn访问。

问题在于通过门户(Jumpcloud)登录时打开了一个新选项卡(我没有注意到),因此解决方案是使用
\u driver.SwitchTo().window(\u driver.WindowHandles[1])切换到新窗口。


谢谢你的帮助!:)

首先检查您的html。我认为body标签必须出现在iframe
中。
如果它出现在iframe中,首先切换到iframe,然后在元素上尝试任何命令(wait或actions)。

可能是JAVA正在运行,您必须等待JAVA完成。所以你可能必须循环,直到元素不为null。如果url是公共的,你能发布它吗?”