Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Selenium(C#)对下拉列表中的所有值进行排序_C#_Selenium - Fatal编程技术网

如何使用Selenium(C#)对下拉列表中的所有值进行排序

如何使用Selenium(C#)对下拉列表中的所有值进行排序,c#,selenium,C#,Selenium,有人能帮我完成这样的任务吗:我需要选择下拉菜单1,选择第一个选项,然后在另一个下拉菜单2中自动显示带有选项的列表,我必须在下拉菜单2中选择第一个选项,单击按钮获取结果,一段时间后,当结果显示时,删除它并选择第二个选项,依此类推。 所以,我需要对下拉列表1的每个选项遍历下拉列表2的每个选项 下面是一些html代码: 第一个下拉列表包含许多选项: <select id="manufacturer-selector" data-bind="value: selectedManufacturer"

有人能帮我完成这样的任务吗:我需要选择下拉菜单1,选择第一个选项,然后在另一个下拉菜单2中自动显示带有选项的列表,我必须在下拉菜单2中选择第一个选项,单击按钮获取结果,一段时间后,当结果显示时,删除它并选择第二个选项,依此类推。 所以,我需要对下拉列表1的每个选项遍历下拉列表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

诺基亚
索尼
联想新
....
第二个下拉列表包含许多选项:

<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

390
390屏幕电话
470屏幕电话47
我需要创建一个循环并在其中再创建一个循环吗?

首先——使用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);
    }
}
var optionCounter1=driver.FindElements(By…).Count;
var optionCounter2=驱动程序.FindElements(按…).Count;
对于(int currooption1=1;currooption1