从下拉列表中抓取随机值,并列出相同的起始子字符串值C#Selenium



列表包含以"Comm"+一串所以"Comm";常见于下拉列表中的每个值前面。我想从列表中选择一个以"0"开头的随机字符串;Comm";我使用读取元素

var selectList = driver.FindElement(GroupDropdown_1); selectList.FindElement(By.XPath(string.Format("//option[starts-with(text(),'{0}')]", "Comm"))).Click();

但默认情况下,它总是在下拉列表中选择第一个出现的项。HTML代码是

<div id="RPaffgroups" name="RPaffgroups" style="display:inline;"><select name="groupid">
<option value="0">Comm Group: No Member Commission Group   [ 52 mbrs]</option>
<option value="106">Aff Group: Retail - Affiliates 2018   [ 46 mbrs]</option>
<option value="106">Aff Group: Merchandise - Affiliates 2002   [ 433 mbrs]</option>
<option value="-1" selected="">Comm Group: Default Commission Group   [ 52 mbrs]</option>
<option value="22" selected="">Comm Group: 0 Comm Group   [ 52 mbrs]</option>
</select>&nbsp;&nbsp;<input type="checkbox" id="cbShowHiddenGroups" border="0" onclick="ToggleGroup('groupid',this);">Show hidden groups</div>

如上所述,它总是选取以"0"开头的字符串的第一次出现;Comm";在上述情况下是Comm Group:无成员委员会Group[52 mbrs]

FindElement()之所以选择匹配xpath的第一个值,是因为它实现了FindElements()(如果找到任何结果,则首先选择(。因此,这里的解决方法是按照xpath获取所有元素,然后随机选择。

selectList.FindElements(xpath).ToList().OrderBy(x => Guid.NewGuid()).First();

最新更新