使用 ID 或类名查找 HTML属性

本文关键字:查找 HTML 属性 ID 使用 | 更新日期: 2023-09-27 17:57:34

我有这个html代码

按钮类="btn btn-primary pull-right" type="submit" id="btnBuildAllSubmit" disabled="disabled">Support

我目前正在使用FindElement,但我无法获取该属性。我想搜索页面并确保显示禁用的属性。我该怎么做?

谢谢

使用 ID 或类名查找 HTML属性

看起来这应该有效:

IWebElement element = driver.FindElement(By.Id("btnBuildAllSubmit"));
string disabledAttributeValue = element.GetAttribute("disabled");
if(disabledAttributeValue == null)
{
    // The disabled attribute is not present
}

根据代码:

https://github.com/SeleniumHQ/selenium/blob/master/dotnet/src/webdriver/Remote/RemoteWebElement.cs#L367

如果属性只是<h1 disabled></h1>,驱动程序将返回 disabled 作为值,否则,如果不存在,它将返回 null,如果设置了值,则返回 disabled 的值。

为什么不使用 XPath Navigation?

    // create an XPathDocument object
    XPathDocument document = new XPathDocument(yourStreamInstance);
    // create a navigator for the xpath doc
    XPathNavigator xNav = xmlPathDoc.CreateNavigator();
    //run the XPath query
    XPathNodeIterator xPathIt = p_xPathNav.Select("//button[@disabled]");
    //use the XPathNodeIterator to display the results
        if (xPathIt.Count > 0) 
        {
            xPathIt.MoveNext();
            Console.WriteLine(xPathIt.Current.Value);
        } 
        else 
        {
            Console.WriteLine("No disabled attribute");
        }