我正试图用硒来验证开关是"开"还是"关",但我似乎做不好。加载网页时,开关设置为打开位置,但关闭时过滤器会在表中显示结果。它运行良好,我只需检查是否进行硒测试即可获得其当前状态。
- 元素。选择;总是返回false(关于切换位置(
- element.已启用;始终返回true(关于切换位置(
- string test=myToggle.GetAttribute("class"(;返回没有帮助的文本"滑块圆形">
- string test1=myToggle.GetAttribute("已选中"(;为null
- string test2=myToggle.GetAttribute("value"(;为null
这是代码:
<label class="switch">
<input type="checkbox" id="myToggle" checked />
<span class="slider round"></span>
</label>
检查切换位置并加载表格数据的代码:
if (Amt == currentAmt ) {
if ($("#myToggle").prop("checked") == true) {
loadMyProducts('NAN', $("#total").val());
}
我现在的测试看起来像这个
[FindsBy(How = How.XPath, Using = "//*[@id='divTestAcc']/div[1]/p[9]/label/span")] public IWebElement myToggle { get; set; } public Boolean CheckMyToogleIsOnorOFF() { string test = myToggle.GetAttribute("class"); Console.Write("checking "+ test); // string test1 = myToggle.GetAttribute("checked"); //string test2 = myToggle.GetProperty("checked"); // .Selected always returns false // .Enables always returns true Boolean result; result = myToggle.Enabled; bool result1 = myToggle.Selected; if (result == true) { Console.WriteLine("My toggle is enabled"); } else { Console.WriteLine("My toggle is not enabled"); } return result; }
// is it checked?
var isChecked = driver.FindElement(By.XPath("//input[@type='checkbox']").Selected;
使用.Selected
属性应该可以实现你想要做的事情。我添加driver.FindElement
语句的原因是为了确保你找到了正确的元素——根据你的问题描述,我不确定你找到的元素&测试的是正确的。
正如另一位用户指出的那样,如果GetAttribute("class")
返回slider round
,那么您在这里看到的是错误的元素。确保首先找到了input
元素。
文件头//*[@id='divTestAcc']/div[1]/p[9]/label/span
处的XPath将定位span
元素,而不是input
——input
是具有checked
的元素,因此这是我们需要测试的内容。