我正在使用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>
答案 0 :(得分:2)
您可以使用FindElements()
方法,并按标记名称查找所有select
元素。对于找到的每个select
元素,初始化SelectElement
类实例并获取SelectedOption
property的值:
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]"));
答案 1 :(得分:0)
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);
}
// Or Loop可以写成
foreach (IWebElement i in ElementCount)
{
String DropDownItems = i.Text;
Console.WriteLine(DropDownItems);
}