【问题标题】:How can I select any item in this dropdown menu using protractor testing?如何使用量角器测试选择此下拉菜单中的任何项目?
【发布时间】:2022-01-22 04:29:48
【问题描述】:

我已经在网上寻找过这个,但我只能找到基本下拉菜单的解决方案。我的下拉菜单如下所示:

<p-dropdown [options]="uyrukList" 
    id="uyruk" name="uyruk"  class="requried-radius"
    #uyrukInput="ngModel" [required]="true"
    [autoDisplayFirst]="false" [(ngModel)]="uyruk" optionLabel="ad">
</p-dropdown>

我试过了:

const select = element(by.id('uyruk'));
select.$('value=myRandomItem').click();

但是没有用。

有没有一种方法可以使用量角器选择此下拉菜单中的任何项目?对我来说它是哪一项并不重要。

【问题讨论】:

  • 第一个代码sn-p是你的源代码,不是浏览器渲染的HTML代码,请分享下拉菜单的HTML代码。 Protractor 在 HTML 代码中查找元素。
  • @yong 感谢您的提示,我已经弄清楚了。

标签: typescript testing protractor dropdown


【解决方案1】:

要在下拉菜单中选择一个项目,您可以尝试在使用控制台在应用程序上呈现下拉菜单时查看它的 ID,然后还可以查看项目的 ID。使用量角器只需单击下拉列表的 id,然后单击项目的 id。如果项目没有 ID,请尝试手动添加它们。

【讨论】:

  • 我在控制台中看不到任何 ID 或其他 ID,因为我猜 Angular 使源代码与实际不同。
  • 我可以了解有关您的下拉组件的更多信息吗?它是一个 ngb 下拉菜单吗?还是您制作的自定义组件?
  • 这是一个定制的
【解决方案2】:

我尝试使用它们的 tagName 访问我的下拉元素,它对我有用。

element.all(by.id('uyruk')).click();
browser.sleep(500);
const list = element.all(by.tagName('p-dropdownitem'));
list.first().click();

为了访问任何带有索引的元素:

list.get(index).click();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-15
    • 2020-10-27
    相关资源
    最近更新 更多