当前位置: 首页 > 面试题库 >

“为定位器找到了多个元素”警告

汤飞
2023-03-14
问题内容

在我的一项测试中,我正在使用定位元素CSS selector

element(by.css("ul.nav button"))

匹配查询的元素不止一个,但是由于我只需要第一个元素,选择器就可以了。

问题是,protractor抛出警告:

警告-为定位器By.cssSelector(“ ul.nav button”)找到了多个元素-将使用第一个结果

是否可以取消警告?换句话说,如何让我protractor知道自己已意识到问题并且不希望再显示警告?

使用protractor开发版本(直接从master分支安装)。


问题答案:

尝试以下方法:

element.all(by.css("ul.nav button")).first()

基本上,这告诉量角器您已经知道不止一个元素,而您只想要第一个(就像您在问题中说的那样)。



 类似资料:
  • 我正在测试一个仍在开发中的网站。 元素的id、类、文本或在DOM中的位置通常会改变。然后我使用的定位器将无法再找到元素。 但是这些功能仍然正常运行。我不希望几个测试在没有实际回归的情况下失败。 因此,我没有为每个元素使用一个定位器,而是使用了一组定位器。 我查找元素的方法如下所示: 它尝试查找集合中具有第一个定位器的元素,只有在失败时,才尝试下一个定位器。 集合是一个(顺序由插入顺序定义),这意味

  • 以下问题是在最近的一次微软采访中提出的 给定一个大小为 5 的未排序数组。需要多少个最小比较才能找到中位数?然后他把它扩展为n号。 根据我的说法,5个元素的解是6 这可以扩展到n个元素。如果不是,除了快速选择之外,我们如何在O(n)中的n个元素中找到中位数

  • 我喜欢在我的自动化框架中使用带有FindBy注释的PageFactory来自动定位我的页面对象类中的元素。 我有一个WebElement,我需要能够指定几个不同的定位器。我以为FindBys是我的解决方案,但显然这不是它的工作方式。它相当于Driver.FindElement(option1).FindElement.(option2)。那不是我需要的。我需要的东西,将找到一个元素的一个或其他定位

  • 对于许多 Selenium 命令,目标是必需的。这个目标用来标示 web 应用程序内容中的指定元素,他是用 locatorType = location 格式所描述。在许多情况下定位器类型可以省略。下面逐一解释各种定位器类型的例子。 标示符定位 这是最常用的定位元素的方法,当没有指定定位器类型时,默认使用这种定位器。这个策略会检索 id 属性值与 location 匹配的第一个元素。如果没有元素的

  • 编辑:有人在评论中要求我展示我是如何定义链接的:

  • 我正在尝试为以下内容定位元素: 我尝试了XPath和CssSelector,但它无法定位元素。有人能帮我找到元素TIA吗