量角器网NgBy.缺少一些定位器



我正在使用Visual Studio 2015作为我的IDE,并且 我将量角器(版本 0.10.2)安装到我的项目中。 在下面的代码中[TestMethod] public void Login() { IWebDriver driver = new ChromeDriver();
var ngDriver = new NgWebDriver(driver); ngDriver.Url = "https://weather.com"; ngDriver.FindElement(By.ClassName("user-login")).Click();
现在,我想使用按钮文本定位器找到一个"登录"按钮。 但是,当我尝试ngDriver.FindElement(NgBy.)时,NgBy之后仅显示以下选项: 捆绑 等于 精确绑定, 精确中继器, 型 参考等于, 中继 器 SelectedOpion

当我用WebStorm和Javascript尝试这个时, 我能够找到并使用按钮,如下所示 element(by.buttonText('Log In')).click();

为什么像"ButtonText"这样的东西不会出现在NgBy之后?

即使在Anthony Chu的博客中,他也在使用Ngby.Input(),我在列表中没有。为什么我缺少所有这些定位器?


我发现量角器下的 NgBy 类仅提供以下内容: 类 Ngby

所以也许量角器网不提供 NgBy.ButtonText()? 但这对我来说没有意义。我觉得我还在做错什么!

请参阅此拉取请求的评论: https://github.com/bbaia/protractor-net/pull/22

你是对的,在"主"量角器网叉(由 bbaia 维护)中,与原始量角器项目相比,缺少一些 NgBys。

选项1

您通常可以使用普通的 .Net WebDriver By (例如 XPath 或 CssSelector) 来查找元素:

使用 XPath 按内部文本查找按钮

使用 XPath 按属性值和文本查找按钮

您可能还会发现这很有价值 - 使用 XPath 按不区分大小写的文本查找元素

选项2

您还可以使用类似的东西编写自己的实现 driver.FindElements(By.TagName("button")).Where(e => e.Text.Trim() == "Text").FirstOrDefault(); 请注意,在许多情况下,这比使用 XPath 慢得多。

选项3

如果因为移植的代码已经在使用这些方法,那么拥有它们对您来说很重要,您可以尝试 sergueik fork,它确实缺少以下方法: https://github.com/sergueik/protractor-net

请注意,它更落后于主叉 - https://github.com/sergueik/protractor-net/network

相关内容

  • 没有找到相关文章

最新更新