如何解决使用C#在angularjs页面中无效的硒元素选择器
我在端口“ x”上本地启动了我的应用程序,并尝试使用硒开始进行UI测试。第一个测试用例是以管理员身份登录到页面。该应用程序的前端使用Angularjs。我正在尝试定位输入字段的用户名,但是我一直遇到“无效元素扇区”的错误。
我也在下面尝试过,但是也没有用:
IWebElement username = driver.FindElement(By.CssSelector("[ng-model='vm.username']"));
解决方法
该元素是Angular元素,因此您必须为所需的ElementToBeClickable()
引入 WebDriverWait ,并且可以使用以下Locator Strategies中的任何一个:>
-
CssSelector
:IWebElement username = new WebDriverWait(driver,TimeSpan.FromSeconds(20)).Until(ExpectedConditions.ElementToBeClickable(By.CssSelector("div.form-group.has-feedback > input[name='username'][ng-model='vm.username']")));
-
XPath
:IWebElement username = new WebDriverWait(driver,TimeSpan.FromSeconds(20)).Until(ExpectedConditions.ElementToBeClickable(By.XPath("//div[@class='form-group has-feedback']/input[@name='username' and @ng-model='vm.username']")));
Nuget包
如果您使用的是nuget软件包,则需要按以下方式使用SeleniumExtras.WaitHelpers.ExpectedConditions
:
-
CssSelector
:IWebElement username = new WebDriverWait(driver,TimeSpan.FromSeconds(10)).Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementToBeClickable(By.CssSelector("div.form-group.has-feedback > input[name='username'][ng-model='vm.username']")));
-
XPath
:IWebElement username = new WebDriverWait(driver,TimeSpan.FromSeconds(10)).Until(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementToBeClickable(By.XPath("//div[@class='form-group has-feedback']/input[@name='username' and @ng-model='vm.username']")));
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。