如何使用c#检查Selenium中开关切换的状态



我正试图用硒来验证开关是"开"还是"关",但我似乎做不好。加载网页时,开关设置为打开位置,但关闭时过滤器会在表中显示结果。它运行良好,我只需检查是否进行硒测试即可获得其当前状态。

  1. 元素。选择;总是返回false(关于切换位置(
  2. element.已启用;始终返回true(关于切换位置(
  3. string test=myToggle.GetAttribute("class"(;返回没有帮助的文本"滑块圆形">
  4. string test1=myToggle.GetAttribute("已选中"(;为null
  5. 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的元素,因此这是我们需要测试的内容。

相关内容

  • 没有找到相关文章

最新更新