首页 > 解决方案 > Selenium web 驱动程序图标状态识别

问题描述

目前我被困在识别图标的状态。

我有一个图标,它有 2 种状态,锁定和解锁并在单击该图标时更改。我知道通过类名或 X 路径查找元素,但真正的问题是我需要知道图标的当前状态是什么。当我检查图标时,我得到如下代码,但我不知道哪个指的是类的当前状态。

<span class="x-towbook-lock locked" title="Locked by accounting bot1">  
  <i class="fas fa-lock" onclick="CallsTabs.updateLockStatus(21108183, true, event);"></i>                             
  <i class="fas fa-lock-open" onclick="CallsTabs.updateLockStatus(21108183, false, event);"></i></span>

标签: c#seleniumselenium-webdriverwebdriver

解决方案


当图标描绘锁定状态时,似乎您已经捕获了 HTML 。

要识别图标的状态,您可以编写一个方法来查找图标状态,您可以使用以下解决方案:

public void FindIconState() 
{
    String IconClasses = driver.findElement(By.xpath("//span[contains(@class,'x-towbook-lock')]")).GetAttribute("class");
    if (IconClasses.Contains("locked"))
         Console.WriteLine("Icon state is LOCKED");
    else
         Console.WriteLine("Icon state is UNLOCKED");
}

现在您可以在程序中的任何位置随时调用此方法:

FindIconState();

推荐阅读