我正在尝试使用c#Selenium WebDriver中的Actions类双击选择框中的选项。以下代码适用于Firefox,但不适用于IE或Chrome。关于为什么或如何调查什么是错误的任何建议?
var sideBarAgentList = new SelectElement(driver.FindElement(By.CssSelector("#agentSelectBox")));
var agentInList = sideBarAgentList.Options.First(o => o.Text == "Agent49159 - 49159");
new Actions(driver).DoubleClick(agentInList).Perform();
HTML
<select id="agentSelectBox" ondblclick="javascript:addAgentDesktop(this.selectedIndex);" onchange="javascript:showAgentInfo(this.selectedIndex);" style="width:220px;background:#e0e0e0;font-family:Verdana;font-size:75%;" size="22">
<option value="0" style="background:white;color:blue">
Agent49159 - 49159
</option>
</select>
答案 0 :(得分:2)
据我所知,doubleclick操作在IE或Chrome中的select元素中的选项不起作用。我已更新我的代码以单击选择菜单中的选项,然后双击选择元素本身而不是选项。适用于FF,IE和Chrome。
new SelectElement(driver.FindElement(By.CssSelector("#agentSelectBox"))).Options.First(o => o.Text == "Agent49159 - 49159").Click();;
new Actions(driver).DoubleClick(driver.FindElement(By.CssSelector("#agentSelectBox"))).Perform();
答案 1 :(得分:1)
尝试更改此行:new Actions(driver).DoubleClick(agentInList).Perform();
来: new Actions(driver).DoubleClick(agentInList).build().Perform();
答案 2 :(得分:0)
与user3198015一样,我发现Selenium的双击动作可以在Firefox中使用,但不适用于Chrome。解决方法是使用两个点击事件,如我对this related question的回答所示。