使用Selenium c#选择只有第一个单词匹配的下拉项
本文关键字:单词匹 第一个 Selenium 选择 使用 | 更新日期: 2023-09-27 18:02:03
我正在尝试从下拉菜单中选择一个元素。我正在添加一个新名称到下拉列表,它正在被一些其他名称更新。假设如果我试图将"Foo"添加到下拉列表中,它会被"Foo 123"更新。123是一个随机数。有没有像模式匹配这样的东西可以在Selenium中使用。
我在c#中使用的代码是:var StyleGroupName = Driver.Instance.FindElement(By.Name("sgroupnbr"));
StyleGroupName.Click();
var selectelement = new SelectElement(StyleGroupName);
selectelement.SelectByText(GrpName);
我的TestClass是:
[TestMethod]
public void Delete_Style_Group()
{
StyleGrp.GrpNme("ADRIJA (413)").DeleteStyleGroup();
}
[TestInitialize]
public void ClassInit()
{
StyleGrp.Goto();
StyleGrp.StyltGroupName("Adrija").Configuration("C3 One Tab").Save();
}
有人能帮帮我吗?
不能通过匹配表达式来选择选项,文本必须精确。
另一种方法是
var selectelement = new SelectElement(StyleGroupName);
foreach (var option in selectelement.Options)
{
if (option.Text.StartsWith("ADRIJA"))
{
option.Click();
break;
}
}
参考SelectElement c#实现
您应该尝试使用部分匹配选项文本的IJavascriptExecutor
,并选择如下:
var StyleGroupName = Driver.Instance.FindElement(By.Name("sgroupnbr"));
((IJavaScriptExecutor)driver).ExecuteScript("var select = arguments[0]; for(var i = 0; i < select.options.length; i++){ if(select.options[i].text.indexOf(arguments[1]) != -1){ select.options[i].selected = true; } }", StyleGroupName, GrpName);