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

在量角器中,browser.isElementPresent与element.isPresent与element.isElementPresent

彭飞虎
2023-03-14
问题内容

在量角器中,基本上有3种方法可以检查元素是否存在:

var elm = element(by.id("myid"));

browser.isElementPresent(elm);
elm.isPresent();
elm.isElementPresent();

这些选项是否等效且可互换,通常应首选哪一种?


问题答案:

所有功能都以相似的方式存在细微的差异。这是我发现的一些差异-

elm.isPresent()
--

  1. 是的扩展,ElementFinder因此在执行任何操作之前等待Angular解决。
  2. 它在elmis和element(locator)or ElementFindernot 时起作用ElementArrayFinder。如果使用locator指定的元素返回了多个元素,则检查第一个元素是否isEnabled()在DOM中。不接受任何参数作为输入。
  3. 最适合与Angular页面和Angular元素一起使用。
  4. 在需要查找是否存在元素时使用的第一优先级。

elm.isElementPresent(subLoc)-(当有子定位符时elm

  1. 是的扩展,ElementFinder因此在执行任何操作之前等待Angular解决。
  2. 用于检查作为父级的子元素的元素的存在。它以sub locator父级elm为参数。(仅与此和之间的区别elm.isPresent()
  3. 最适合与Angular页面和Angular元素一起使用。
  4. 在需要检查父项的子元素是否存在时使用的第一优先级。

browser.isElementPresent(element || Locator)
--

  1. 是的实现,webdriver因此不等待角度稳定下来。
  2. 如果使用同一定位符定位多个元素,则将a locator或an element作为参数并使用第一个结果。
  3. 最佳用于非角度页面。
  4. 在非角度页面上进行测试时使用的首选。

上面所有这些检查DOM中元素的存在并返回boolean结果。虽然角度和非角度特征不会影响这些方法的使用,但是当该方法默认等待角度建立时,还有一个附加的优势,即在找不到像角度的元素或状态元素引用异常的情况下,有助于避免错误,等等…



 类似资料:
  • 问题内容: 根据文档,有两种方法可以获取(调用结果)内部有多少个元素: ,记录在这里: …该数组等于由找到的元素的,每个结果代表对该元素执行操作的结果。 ,记录在这里: 计算表示的元素数量。 这两种方法有什么区别,应首选哪一种? 问题答案: 需要解决诺言以正确获取元素的长度。 一个包装器,它本身就是一个承诺,不需要解决承诺,例如 哪一个应该是首选? 除非在进行定位和参与时有一些复杂的业务,否则它将

  • 问题内容: 我正在尝试使用 selenium* 选择包裹在 angular 1中 的textarea ,但是在DOM中看不到。有一个名为Pytractor的模块。我一直在尝试解决此问题,但是我无法正确使用它。 * 谁能帮我这个? 问题答案: 您还可以使用常规的硒绑定来测试AngularJS应用程序。您将需要使用“ 显式等待”来等待元素的出现,消失,标题/ URL的更改等-用于使您能够继续测试页面的

  • 我试图遵循量角器官方网站上的量角器教程,但我甚至无法完成步骤0。 我在用量角器 之后,我一直在遵循教程的第0步。我有配置。js文件和test-spec.js文件如下: 配置js公司 测试规范js 当我运行protector

  • 问题内容: 我希望能够使用Protractor测试我的Angular应用程序。由于我使用RequireJS,因此无法在DOM中使用指令,这就是为什么我使用手动引导Angular的原因。 量角器输出如下错误输出: 错误:在页面上找不到Angular :重试以寻找超出的角度 然后,我意识到量角器文档中有一个警告: 对于使用angular.bootstrap手动引导的应用,Protractor不能立即使

  • 我试图在量角器测试用例中设置一个cookie。我们使用量角器3.3.0,Angular 1.5.x和Node.js 6.9.1 这是规格: 编辑: 我做了一些进一步的实验。请注意,我已经更改了域,并且在成功读取/写入cookie之前没有。 这是我得到的输出: 编辑4: 越来越近了!将域设置为(注意开头的点(.))似乎有效。会做进一步调查并报告。与此同时,如果有人能告诉我为什么这个点是重要的,以及为