我正在使用 C# - Selenium Webdriver
我需要测试一个页面,选择元素的数量未知。可能是一、二、三...在下面的示例中,它包含 4 个选择。
这里有 2 个问题。
如何计算选择标签的数量,以便我可以执行循环以获取每个选择标签中的选定选项。
使用 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
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
元素时更加具体,并使用 检查 name
属性以 ps_ck
开头CSS 选择器:
IList<IWebElement> selectElements = driver.FindElements(By.CssSelector("select[name^=ps_ck]"));
关于C# Selenium : How to count elements and get selected option from a selection element,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36538333/