Select 元素量角器
Select element protractor
我在尝试编写端到端测试时遇到了很大的问题。
这是我的场景:我想计算给定元素的选项数。
我 不要 想做的是使用 id,所以我试图 select 它而不污染 html。
让我们看看 html:
<form class="catalogue-sidebar">
...
<ki-multi-select-option>
<select>
...
<option></option>
...
</select>
</ki-multi-select-option><!-- ki-multi-select-option -->
...
</form><!-- .catalogue-sidebar -->
我这里有一些 ki-multi-select-option 指令。我需要计算第二个选项的数量。
我怎样才能select呢?
使用 id 将是这样的(这有效):
var colorsOptions = browser.findElements( by.css( '#filter-colors select > option' ) );
colorsOptions.then( function( elements ) {
// There is an empty option as default, thats why "greater than 1"
expect( elements.length ).toBeGreaterThan( 1 );
});
但正如我所说,我想避免包含仅用于测试的 ID。
我尝试了很多不同的组合,但都没有成功。
使用jQuery我可以做这样的事情:
$( ".catalogue-sidebar ki-multi-select-option:eq(1)" ).find( 'select > option' )
有人可以帮我吗?
谢谢!
仅使用 CSS:
var options = element.all(by.css('.catalogue-sidebar ki-multi-select-option:nth-child(1) select option'));
var kiWrapper = element.all(by.css('.catalogue-sidebar ki-multi-select-option')).get(1);
var options = kiWrapper.all(by.css('select option'));
现在有了 count 函数就不需要 then
因为 expect
处理 webdriver promises:
expect(options.count()).toBeGreaterThan(1);
我在尝试编写端到端测试时遇到了很大的问题。
这是我的场景:我想计算给定元素的选项数。
我 不要 想做的是使用 id,所以我试图 select 它而不污染 html。
让我们看看 html:
<form class="catalogue-sidebar">
...
<ki-multi-select-option>
<select>
...
<option></option>
...
</select>
</ki-multi-select-option><!-- ki-multi-select-option -->
...
</form><!-- .catalogue-sidebar -->
我这里有一些 ki-multi-select-option 指令。我需要计算第二个选项的数量。
我怎样才能select呢?
使用 id 将是这样的(这有效):
var colorsOptions = browser.findElements( by.css( '#filter-colors select > option' ) );
colorsOptions.then( function( elements ) {
// There is an empty option as default, thats why "greater than 1"
expect( elements.length ).toBeGreaterThan( 1 );
});
但正如我所说,我想避免包含仅用于测试的 ID。
我尝试了很多不同的组合,但都没有成功。
使用jQuery我可以做这样的事情:
$( ".catalogue-sidebar ki-multi-select-option:eq(1)" ).find( 'select > option' )
有人可以帮我吗?
谢谢!
仅使用 CSS:
var options = element.all(by.css('.catalogue-sidebar ki-multi-select-option:nth-child(1) select option'));
var kiWrapper = element.all(by.css('.catalogue-sidebar ki-multi-select-option')).get(1);
var options = kiWrapper.all(by.css('select option'));
现在有了 count 函数就不需要 then
因为 expect
处理 webdriver promises:
expect(options.count()).toBeGreaterThan(1);