C#Selenium:如何计算元素数量并从选择元素中获取所选选项
本文关键字:元素 选择 获取 选项 何计算 计算 C#Selenium | 更新日期: 2024-07-27 03:40:24
我正在使用C#-Selenium Webdriver
我需要测试一个页面,其中选择元素的数量是未知的。可能是一、二、三。。。在下面的示例中,它包含4个选项。
这里有两个问题。
-
如何计算选择标记的数量,以便我可以循环获得每个选择标记中的选定选项。
-
使用Selenium WebDriver C#获取所选文本的正确语法是什么?
谢谢。
<select name="ps_ck$0" id="ps_ck$0" >
<option value="A">Active</option>
<option value="C">Cancelled</option>
</select>
<select name="ps_ck$1" id="ps_ck$1" >
<option value="A">Active</option>
<option value="X">Cancelled</option>
</select>
<select name="ps_ck$2" id="ps_ck$2" >
<option value="A">Active</option>
<option value="X">Cancelled</option>
</select>
<select name="ps_ck$3" id="ps_ck$3" >
<option value="A">Active</option>
<option value="X">Cancelled</option>
</select>
您可以使用FindElements()
方法,并通过标记名称查找所有select
元素。对于找到的每个select
元素,初始化SelectElement
类实例并获得SelectedOption
属性的值:
IList<IWebElement> selectElements = driver.FindElements(By.TagName("select"));
foreach (IWebElement select in selectElements)
{
var selectElement = new SelectElement(select);
Console.WriteLine(selectElement.SelectedOption.Text);
}
请注意,在定位select
元素时,我们可以更加具体,并使用CSS选择器检查name
属性以从ps_ck
开始:
IList<IWebElement> selectElements = driver.FindElements(By.CssSelector("select[name^=ps_ck]"));
Selenium WebDriver C#代码:
SelectElement SelectEmployeeName = new SelectElement(driver.FindElement(By.Id("ps_ck$0")));
//To count elements
IList<IWebElement> ElementCount = SelectEmployeeName.Options;
int NumberOfItems = ElementCount.Count;
Console.WriteLine("Size of BGL: " + NumberOfItems);
//Getting drop down values
for(int i = 0; i < NumberOfItems; i++)
{
String DropDownItems = ElementCount.ElementAt(i).Text;
Console.WriteLine(DropDownItems);
}
//或者循环可以写成
foreach (IWebElement i in ElementCount)
{
String DropDownItems = i.Text;
Console.WriteLine(DropDownItems);
}