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

无法从下拉菜单中选择元素使用量角器进行E2E测试[重复]

南门烈
2023-03-14

有很多方法可以做到这一点,我已经尝试了很多方法,但是在做自动测试时,我不能从下拉菜单中选择一个项目。

“选择”是出现在下拉菜单中的默认选择,我希望自动化测试选择其中一个元素,不管是哪个

这是HTML代码

<select class="form-control ng-pristine ng-invalid ng-invalid-required" ng-model="user.investmentAmount" required="" ng-class="{submitted:invalid}">
                   <option value="">Select</option>
                   <option value="<50"> 50K</option>
                   <option value="50-100">100K</option>
                   <option value="100-250">250K</option>
                   <option value="250-500">500K</option>
                  </select>

这是我的量角器档案

var selectDropdownbyNum = function ( element, optionNum ) {
    if (optionNum){
      var options = element(by.cssContainingText("Select"))  
        .then(function(options){
          options[2].click();
        });
    }
  };
  browser.sleep(2000);

我尝试过使用by.cssElement、by.xpath等。当我运行上面的代码时,我没有得到任何错误,但它也没有选择任何元素。谢谢

共有3个答案

轩辕晔
2023-03-14

这是因为您只选择了一个包含“Select”值且需要数组的选项,

尝试下面,首先按模型获取选择框,并在数组中按html标签名称获取所有选项

browser.element(by.model('user.investmentAmount')).all(by.tagName('option')).
   then(function(items){
        items[2].click(); 
}); 
傅毅然
2023-03-14

一旦你点击//选择[@ng-Model='user.investment量']usng xpath,放一些等待像"browser.sleep(2000)"然后使用//选项[text()='100K']点击。

湛联
2023-03-14

你肯定是个怪人。我通常只需单击文本选项(如果可能)。你应该能做这样的事。。。

var selectOptionByText = function(text) {
    return element(by.cssContainingText('option', text)).click();
};
 类似资料:
  • 我是新的量角器,我正在执行一些e2e测试,我在最后一个问题,当我试图调用下拉列表并选择其中一个选项时。 这是我的代码: 我每次得到的是: 这个错误怎么可能? 提前感谢您的帮助。

  • 我的页面上有一个下拉菜单。我测试量角器的目标是单击此下拉菜单中的一个选项,并让量角器检查结果: 我的量角器测试看起来像: 如果你想知道的话,ptor.ignoreSynchronization是启用的,因为我的网页不断地轮询后端的一些更新。 量角器在我运行测试时抛出以下错误: 我不明白这个错误是关于什么的。这个元素肯定是可见的,因为当我查看页面的源代码时,我可以在DOM结构中看到它。 善意的忠告

  • 问题内容: 我可以使用选择一个元素,但是开发人员已使用虚拟重复,因此以下代码现在无法正常工作 失败:索引超出范围。尝试访问索引为0的元素,但是只有0个与by.repeater(“ ui中的商店”中的商店)匹配的元素 问题答案: 您可以使CSS选择器与材料设计中继器元素匹配:

  • 我有一个带有输入框和用户界面选择下拉列表的表单,在ng-blur事件中,我调用了一个方法来自动选择所有三个用户界面选择中的选项。当我使用量角器e2e测试执行此操作时,它不会等待用户界面选择发生并提交表单,这会引发异常,因为它没有找到只有在提交包含所有必需字段的表单后才会出现的元素。我试过这样browser.wait 它正在抛出异常。

  • 我正在尝试让我的量角器端到端测试与下拉菜单进行交互。 在我测试的页面中,我们有一个国家下拉列表。下拉列表包含4个可选选项“?”其中空白,然后是美国、英国和加拿大。 我显然没有在我的PO文件中正确调用元素,因为参数化不起作用。测试“通过”,但是当您观察正在驱动的内容时,选择的国家/地区是“?”(这是默认的)。因此,测试是导航到页面,选择元素,而不是实际单击我想要的选项。 据我所知,我需要以某种方式获

  • 你好,我正在使用selenium,并且已经成功地设置了id历史的文本字段,但是无法从