C# Selenium无法访问网页上的任何元素
我正在用C#编写Selenium测试,使用Specflow和Nunit为我正在处理的一个新项目编写,并且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
正文
中的任何内容都不能在任何地方选择
我可以使用
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是公共的,你能发布它吗?”