C# Selenium : How to count elements and get selected option from a selection element

标签 c# selenium

我正在使用 C# - Selenium Webdriver

我需要测试一个页面,选择元素的数量未知。可能是一、二、三...在下面的示例中,它包含 4 个选择。

这里有 2 个问题。

  1. 如何计算选择标签的数量,以便我可以执行循环以获取每个选择标签中的选定选项。

  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/

相关文章:

c# - 使用LINQ构造列表C#

Python Selenium 动态表格单元格返回空字符串

c# - 向上舍入 c# TimeSpan 到 5 分钟

c# - WCF 生成的代理不包含*指定属性标志的 WSDL 字符串字段与 minoccurs ="0"

python - RuntimeError : Failed to shutdown the live test server in 2 seconds. 服务器可能卡住或生成响应缓慢。 - Django

selenium - 为 Firefox 创建一个假的网络摄像头流

selenium - 如何使用XPath获取属性的值

java - 无法获取表中的元素数量

c# - 在托管代码和非托管代码之间共享 Graphics 对象时丢失抗锯齿

c# - 如何在 asp.net core 中使用 Fetch api 将数据传递给 Controller