我有在下拉列表中选择每个选项的测试用例,但无论我目前做什么,我都会遇到这个错误。
结果消息:系统。InvalidOperationException:元素在点(1170.0333251953125405.4250030517578)处不可单击,因为另一个元素遮挡了它
<div class="btn-group bootstrap-select">
<button type="button" class="btn dropdown-toggle btn-default" data-toggle="dropdown" role="button" data-id="year" title="2018" aria-expanded="false">
<span class="filter-option pull-left">2018</span>
<span class="bs-caret">
<span class="caret" />
</span>
</button>
<div class="dropdown-menu open" role="combobox" style="max-height: 272px; overflow: hidden; min-height: 0px;">
<ul class="dropdown-menu inner" role="listbox" aria-expanded="false" style="max-height: 260px; overflow-y: auto; min-height: 0px;">
<li data-original-index="0" class="selected">
<a tabindex="0" class="" data-tokens="null" role="option" aria-disabled="false" aria-selected="true">
<span class="text">2018</span><span class="glyphicon glyphicon-ok check-mark" />
</a>
</li>
<li data-original-index="1">
<a tabindex="0" class="" data-tokens="null" role="option" aria-disabled="false" aria-selected="false">
<span class="text">2017</span><span class="glyphicon glyphicon-ok check-mark" />
</a>
</li>
</ul>
</div>
<select aria-label="view all previous payments" class="selectpicker" data-val="true" data-val-number="The field Year must be a number." data-val-required="The Year field is required." id="year" name="Year" tabindex="-98">
<option selected="selected" value="2018">2018</option>
<option value="2017">2017</option>
</select>
</div>
目前正试图用这个代码改变年份 -
SelectElement DropDown = new SelectElement(ObjectIdentification);
DropDown.SelectByValue(ValueToBeSelected);
return true;
WebElement是这样定义的
[FindsBy(How = How.XPath, Using = "//*[contains(@class, 'selectpicker')]")]
private IWebElement DropDownYear { get; set; }
这是selenium尝试选择拾取时下拉列表的样子。我看不到任何东西遮住它。
试试这个代码:
var down= driver.FindElement(By.id("year"));
var DropDown = new SelectElement(down);
//select by value
DropDown .SelectByValue("2017");
// select by text
DropDown .SelectByText("2017");
你可以有这样的Web元素:
[FindsBy(How = How.id, Using = "year")]
private IWebElement DropDownYear { get; set; }
更新:
IList<IWebElement> options= webDriver.FindElements(By.CssSelector("select[id='year']>option"));
foreach (IWebElement element in options){
if(element.GetText().Equals("2017")){
element.Click();
}
}
XPath需要更改如下
//select[@id='year']
其他的
使用ID或名称定位器来选择元素
好的,这里有几个选项
> < li>
检查您是否正在最大化窗口-
driver.Manage().Window.Maximize();
或
使用操作类查找元素并对其执行操作
IWebElement element = driver.FindElement(By.Id("year"));
Actions action = new Actions(driver);
action.MoveToElement(element);
var DropDown = new SelectElement(element);
DropDown.SelectByText("2017");
使现代化
IJavscript执行器
IWebElement element = driver.FindElement(By.Id("year"));
((IJavaScriptExecutor)driver).ExecuteScript("var select = arguments[0]; for(var i = 0; i < select.options.length; i++){ if(select.options[i].text == arguments[1]){ select.options[i].selected = true; } }", element, "2017");
主要内容:实例,分割的按钮下拉菜单,实例,按钮下拉菜单的大小,实例,按钮上拉菜单,实例本章将讲解如何使用 Bootstrap class 向按钮添加下拉菜单。如需向按钮添加下拉菜单,只需要简单地在一个 .btn-group 容器中放置按钮和下拉菜单即可。您也可以使用 <span class="caret"></span> 来指示按钮作为下拉菜单。 下面的实例演示了一个基本的简单的按钮下拉菜单: 实例 <div class="btn-group"> <button type="but
嗨,我正在尝试自动启动下拉菜单。默认情况下,它的可见性是隐藏的。将鼠标悬停在它上面时,它的可见性属性显示为可见。我可以单击下拉菜单,但是在单击下拉菜单后,我的selenium脚本不能从下拉菜单中选择值。 错误:线程"main"org.openqa.selenium.ElementNotVisibleException异常:无法单击元素 HTML代码段
我试图用硒点击“下一页”按钮,但没有成功。我使用了正确的CSS选择器还是应该把它换成别的东西?
我试图创建一个自动的网络会话,我登录到一个网站,并从下拉框中选择一个选项。我能够使用硒进入页面,但我无法点击打开下拉菜单的栏,然后选择我想要的选项。这是页面的截图,它的超文本标记语言代码:[![在此输入图像描述][1]][1][![在此输入图像描述][2]][2] 我想单击下拉列表中的“降级性能”选项。我有点被困在这里,因为下拉列表的HTML与[this one][3]根本不相似(无法“选择”)。
你好,我正在使用selenium,并且已经成功地设置了id历史的文本字段,但是无法从
问题内容: 如何设置HTML复选框,单选按钮和下拉菜单的样式?可以吗 我想为复选框或单选按钮使用图像,对列表使用相同的图像-下拉箭头在大多数情况下看起来不太好。 问题答案: 请参阅jQuery插件的2个链接(用于样式化复选框和单选按钮): http://line25.com/articles/jquery-plugins-for-styling-checkbox-radio- buttons ht