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

当使用E2E测试在下拉量角器中有多个包含相同文本的选项时,如何选择任何特定选项

常睿范
2023-03-14

我正在尝试使用量角器从下拉列表中选择一个选项“印度”,用于角e2e测试。

以下是选择选项的代码片段:

<select id="countryCode" class="form-control nux-select input-md ng-touched ng-dirty ng-valid-parse ng-valid ng-valid-required" required="" data-ng-model="selectedCountry" data-ng-options="c.country for c in country" name="countryCode">
<option class="" selected="" value="">-- select --</option>
<option value="0">Afghanistan</option>
<option value="1">Albania</option>
.
.
.
<option value="29">Brazil</option>
<option value="30">British Indian Ocean Territory</option>
.
.
.
<option value="98">India</option>
<option value="99">Indonesia</option>

我尝试过:

element(by.cssContainingText('option', 'India')).click();

但随着“英属印度洋领土”选项的到来,它选择了这个选项,而不是“印度”。

所以我试了下面的方法,它奏效了:

element(by.xpath('//select[@id="countryCode"]/option[98]')).click();

但是由于我是硬编码,新值可能会被添加到下拉列表中,任何人都可以建议我以不同的方式实现它。

共有2个答案

金健
2023-03-14
element.all(by.cssContainingText('option', 'India')).then(function(items) {
  expect(items.length).toBe(2);
  expect(items[0].getText()).toBe('British Indian Ocean Territory');
  expect(items[1].getText()).toBe('India');
});

我不确定这是最好的解决方案,但它应该有效。只有在你增加包含“印度”的新价值的情况下,它才会稳定,但它看起来并不现实。

窦哲彦
2023-03-14

其他硒语言绑定有选择-

select = Select(driver.find_element_by_id('countryCode'))
select.select_by_visible_text('India')

在量角器中,没有内置这样的东西,但正如@dmitankin在选择中善意地提出的那样 -

var mySelect = new SelectWrapper(by.id('countryCode'));
mySelect.selectByText('India');

仅供参考,selectByText()这里基于检查选项文本的xpath表达式:

SelectWrapper.prototype.selectByText = function(text) {
    return this.webElement.all(by.xpath('option[.="' + text + '"]')).click();   
};

 类似资料:
  • 下面是select选项的代码段: 我试过: 这给了我以下错误: 有谁能帮我解决这个问题,或者说我可能做错了什么。

  • 问题内容: 我正在尝试使用量角器从下拉菜单中选择一个选项进行角度e2e测试。 这是select选项的代码片段: 我努力了: 这给我以下错误: 指定了无效或非法字符串Build info:版本:‘2.35.0’,修订版:’c916b9d’,时间:‘2013-08-12 15:42:01’系统信息:os.name:’Mac OS X’ ,os.arch:’x86_64’,os.version:‘10

  • 我正在尝试测试选择选项中的项目文本,但我的测试失败,并给出错误,以下是我的规范: 它('应该测试sorting_options文本', 函数() { 以下是我收到的错误: C: \wamp\www\第一个-角度-应用程序 如何解决这个问题?

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

  • 我使用量角器在角应用端到端测试。我试图点击选择框中的选项,但我有以下错误元素目前不可见,可能无法操纵。 我有这部分html: 在量角器测试中我有一行代码: 我想点击值为“草稿”的选项。你知道可能是什么问题吗?

  • 我想通过它的文本而不是下拉框中的值来单击项目。 我发现了这个很棒的帖子:https://coderwall.com/p/tjx5zg但它并没有像预期的那样工作,搜索在找到匹配后永远继续,它没有点击该项目, 如果有人有更好的例子(一个工作的例子)或者可以修复这个代码并使其工作, 我将apperciate。 这是Dan Haller在帖子中使用的密码(版权归他所有) 这是一个选择项功能,我可以这样使用