有人可以帮忙完成这样的任务:我需要选择drop_down_1,选择第一个选项,然后自动在另一个drop_down_2中显示带有选项的列表,我必须在drop_down_2中选择第一个选项,点击按钮获取结果,之后一些结果显示为删除它的时间,并选择第二个选项,依此类推。 因此,我需要为drop_down_1的每个选项迭代drop_down_2的每个选项。
下面的一些HTML代码:
第一个下拉列表包含许多选项:
<select id="manufacturer-selector" data-bind="value: selectedManufacturer">
<option value=""></option>
<option value="5637148326">Nokia</option>
<option value="5637148327">Sony</option>
<option value="5637148328">Lenovo-new</option>
....
第二个下拉列表包含许多选项:
<select id="product-selector" data-bind="attr: { disabled: countManufacturerProducts() === 0 }, foreach: manufacturerProducts, value: selectedProduct">
<option data-bind="text: Name, attr: { value: ID }" value="5637191581">390</option>
<option data-bind="text: Name, attr: { value: ID }" value="5637201719">390 Screenphone</option>
<option data-bind="text: Name, attr: { value: ID }" value="5637206334">470 Screenphone</option>47
我是否需要创建一个循环并在其中再循环一次?
答案 0 :(得分:0)
首先 - 使用selenium.support.ui
创建2个选择元素
SelectElement select1 = driver.FindElement(By....);
SelectElement select2 = driver.FindElement(By....);
然后计算选择1中“选项”元素的数量。
var optionCounter1 = driver.FindElements(By...).Count;
var optionCounter2 = driver.FindElements(By...).Count;
for (int currOption1 =1; currOption1 < optionCounter; currOption1 ++)
{
select1.SelectByIndex(currOption1 );
for (int currOption2 =1; currOption2 < optionCounter; currOption2 ++)
{
select1.SelectByIndex(currOption1);
select2.SelectByIndex(currOption2);
}
}