如何使用WebDriver(Selenium 2)检查dom是否有类?

Klo*_*lon 22 c# selenium webdriver

我对Selenium很新,所以我很抱歉这是一个愚蠢的问题.我已成功将IntelliJ(Play!框架)与Selenium连接起来,并使用firefoxDrivers创建了一些测试.

我正在尝试检查页面是否已经过正确验证.

长话短说,我选择了这样一个元素:

WebElement smallDecel = firefoxDriver.findElement(By.cssSelector("#configTable tr:nth-child(2) td .playerDecelInput"));
Run Code Online (Sandbox Code Playgroud)

我做了一些进一步的操作(清除并更改值,提交'表单'),然后我想检查输入所在的TD是否给了另一个类.

所以,问题是 - 是否有一种简单的技术可以用来确定WebElement/DOM是否指定了类?

Sam*_*cey 29

为了扩展Sam Woods的答案,我使用一个简单的扩展方法(这是用于C#)来测试一个元素是否具有指定的类:

public static bool HasClass( this IWebElement el, string className ) {
    return el.GetAttribute( "class" ).Split( ' ' ).Contains( className );
}
Run Code Online (Sandbox Code Playgroud)

  • 他的答案是正确的,是.Split('')因为这是C#,还要考虑到你需要在using指令中包含System.Linq才能使.Contains工作. (3认同)

Sam*_*ods 25

找到元素后,只需调用myElement.GetAttribute("class")即可.然后,您可以解析返回的字符串,看它是否包含或不包含您关心的类名.


CBR*_*cer 7

您可以使用FindElement(By.ClassName(//name of your class));我建议您循环浏览并搜索DOM一段时间或设置Thread.sleep(xxxx),然后查找附加的类.