我有下拉列表的HTML代码:
<div class="column two">
<select id="CCType" name="CCType">
<option value="">Please select...</option>
<option value="Mcard">Master Card</option>
<option value="Visa ">VISA</option>
</select>
我的剧本:
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].select();", selectCreditCardType);
selectCreditCardType.selectByValue("Visa");
或
selectCreditCardType.selectByVisibleText(customer.creditCardType);
结果:元素应为select
,但为input
。
尝试了stackoverflow中的不同选项:Selenium webdriver C# CSS dropdown Issue - Element should have been select but was div 但是没有运气。
答案 0 :(得分:0)
如果您使用OpenQA.Selenium.Support.UI.SelectElement类
,它应该可以工作C#示例:
var selElement = new OpenQA.Selenium.Support.UI.SelectElement([Web Element goes here]);
foreach (var option in selElement.Options)
{
if (option.Text == "desired text here")
selElement.SelectByText(Option.Text);
}
您也可以按值进行操作,但这将是select元素选项的get属性选择和比较。
option.GetAttribute("value");