Html Selenium断言具有类

Html Selenium断言具有类,html,testing,selenium-ide,Html,Testing,Selenium Ide,我有一个id已知的元素。我想断言或验证它是否有特定的类 元素的HTML为: <a id="SearchList" class="something-else disabled"></a> 我想使用id“SearchList”来定位元素,然后验证它是否具有类“disabled” 编辑: 我正在使用Selenium IDE作为FireFox插件 您可以使用getAttribute()方法获取属性并进行验证。我假设您使用Java编写脚本 WebElement list

我有一个id已知的元素。我想断言或验证它是否有特定的类

元素的HTML为:

<a id="SearchList" class="something-else disabled"></a>

我想使用id“SearchList”来定位元素,然后验证它是否具有类“disabled”

编辑:

  • 我正在使用Selenium IDE作为FireFox插件
您可以使用getAttribute()方法获取属性并进行验证。我假设您使用Java编写脚本

WebElement list = driver.findElement(By.id("SearchList"));
String disabled = list.getAttribute("disabled");

if(disabled.equals("disabled")){
  // something
}else{
  // something else
}

这对IED没有帮助,但在C#中,我可以使用GetAttribute方法来实现这一点

var allClasses = webElement.GetAttribute("class");
var elementHasClass = allClasses.Split(' ').Any(c => string.Equals("classLookingFor", c, StringComparison.CurrentCultureIgnoreCase));

抱歉发帖了。我对@Purus的建议有一些补充

由于“disabled”是类名的一部分
class=“something other disabled”
list.getAttribute(“disabled”)
将返回
null
。我的建议如下(Selenium WebDriver Java客户端):


我正在使用用于FireFox的Selenium IDE。问题不是元素是否设置了属性“disabled”,而是元素是否具有类“disabled”,这将通过class=“not disabled”传递。如果你想要Java,只需要port Aligned的Java解决方案。是的,它会传递“not disabled”,但TS要求定位“disabled”而不是“not disabled”的具体类。让我重写一下:他想验证元素是否有类“disabled”。如果元素有任何包含文本“disabled”(例如“notdisabled”)的类,那么您的代码的行为就好像它有类“disabled”一样。这是错误的。IDE不支持
css=#SearchList.disabled
?@MatthijsWessels是的,这是多余的。我将编辑我的答案
var allClasses = webElement.GetAttribute("class");
var elementHasClass = allClasses.Split(' ').Any(c => string.Equals("classLookingFor", c, StringComparison.CurrentCultureIgnoreCase));
WebElement element= driver.findElement(By.id("SearchList"));
String elementClass= element.getAttribute("class");

if(elementClass != null && elementClass.contains("disabled")){
  // something
}else{
  // something else
}