当前位置: 首页 > 知识库问答 >
问题:

使用Protractor,如何获得当前选定选项以外的随机选择选项?

安奇
2023-03-14

我想处理一个选择菜单的测试场景,其中 spec 将选择一个随机选项,而不是当前选择的选项。我似乎找不到一个有效的定位器或方法可以让我做到这一点。

  1. 策略1:获取选项[selected]的当前索引,并从其他索引中随机选择
  2. 策略2:获取未选择的选项。css('option:not([selected])')-获取数组的长度并选择随机数组。此选择器似乎忽略了:而不是部分,并返回选项总数

由于我对量角器很陌生,我真的没有看到一种方法来查看API。请问有什么提示吗?

共有1个答案

郁景龙
2023-03-14

首先,让我们使用< code >过滤未选择的选项。filter():

var nonSelectedOptions = $$("option").filter(function (option) {
    return option.isSelected().then(function (isSelected) {
        return !isSelected;
    });;
});

现在,我们需要一个索引列表来随机选择一个索引,让我们使用 .map()

var indexes = nonSelectedOptions.map(function (option, index) {
    return index;
});

现在,我们需要解析indexpromise以获取索引数组并使用此答案中的“从数组中选择随机项目”解决方案。我们将使用. get()为随机选择的索引获取特定选项:

indexes.then(function (indexes) {
    var randomIndex = indexes[Math.floor(Math.random()*indexes.length)];

   var randomOption = nonSelectedOptions.get(randomIndex);

   // now select the randomOption
});

如果您要使用此处建议的包装器,选项选择代码将是:

randomOption.getAttribute("value").then(function (optionValue) {
    mySelect.selectByValue(optionValue);
});

未经测试。

 类似资料:
  • 我是一个新生的QA,我在这里尝试编写一个Protractor脚本,从下拉列表中选择一个选项。我的下拉列表中有两个选项,我正在尝试从数字中选择它。 这是我正在使用的代码。 默认情况下,选项 2 在页面加载时处于选中状态。我需要的是从下拉列表中选择选项1。但是,我的代码不会这样做。 下面是选择选项的代码片段。 提前感谢:)

  • 我正在用量角器编写一些e2e测试。我的应用程序是Angular材料2应用程序。在我的测试中,我想按值选择md-select的一个选项。当我检查打开的md-select时,我看到了md-选项项。选项的值在一个属性ng-反映-值中。 假设我有一个值为“optionA”的选项。如何通过该值选择某个选项? 我试过这个: 在里面,我看到了选项的正确数目,但是我如何选择值为“of options”的选项呢?

  • 以下代码起作用: 如何将第二行重构为: 您对所选的******选项使用了什么?

  • 问题内容: 如何使用Selenium WebDriver和Python获取选定的选项: 有人有解决方案吗? 我正在使用它来获取select元素: 是否有类似的东西或类似于“ getFirstSelectedOption”的东西: 然后,我想用类似的方式验证内容: 问题答案: 这很容易处理- 类:

  • 问题内容: 我想使用Selenium WebDriver 获取选定的标签* 或 下拉列表的 值,然后在 控制台 上 打印 它。 * 我可以从下拉列表中选择任何值,但是我无法检索所选值并进行打印: 但是我所有的努力都是徒劳的。如何获得所选的选项? 问题答案: 您应该能够使用来获取文本(对于使用的option元素):

  • 我想调用一个函数时,选择的任何选项。类似于这样: 但不知何故不起作用。有人能帮忙吗。 请注意 我不想捕获更改事件,如果我选择已经选择选项,则不会触发更改事件