2015-04-07 63 views
0

可以帮助完成这样的任务:我需要选择drop_down_1,选择第一个选项,然后自动在另一个drop_down_2列表中显示带有选项的下拉列表中的所有值必须在drop_down_2中选择第一个选项,单击按钮获取结果,过一段时间后,结果将显示为删除并选择第二个选项,依此类推。 因此,我需要对drop_down_1的每个选项遍历drop_down_2的每个选项。如何使用Selenium(C#)

以下一些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

首先是 - 使用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); 
    } 
} 
多少 “选项” 元素
相关问题