C# 使用Selenium Webdriver获取元素的活动状态?

C# 使用Selenium Webdriver获取元素的活动状态?,c#,selenium,automation,selenium-webdriver,C#,Selenium,Automation,Selenium Webdriver,我们已经有了一个新的页面,我们正在自动化,引导模板的一些特性正在给自动化带来一些麻烦 传统上,通过复选框或单选按钮,我们使用标签来标识它: [FindsBy(How = How.CssSelector, Using = "body [autotag='prf_rd_1']")] private IWebElement myElement; 此时,您可以在Webdriver代码中使用element.isSelected来查看是否勾选了它 但是,对于引导,开发人员已更改为使用激活或

我们已经有了一个新的页面,我们正在自动化,引导模板的一些特性正在给自动化带来一些麻烦

传统上,通过复选框或单选按钮,我们使用标签来标识它:

[FindsBy(How = How.CssSelector, Using = "body [autotag='prf_rd_1']")]
        private IWebElement myElement;
此时,您可以在Webdriver代码中使用element.isSelected来查看是否勾选了它

但是,对于引导,开发人员已更改为使用激活或未激活的按钮,例如:

<button class="btn" autotag="prf_bt1" btn-radio="availabilityType.key" ng-model="model.availability.time" type="button"> … </button>

<button class="btn **active**" autotag="prf_bt1" btn-radio="availabilityType.key" ng-model="model.availability.time" type="button"> … </button>
…
… 
(嗯,不知道如何在代码片段中高度激活单词,如果有人知道,请随意编辑)

所以,现在我们不能寻找“isSelected”,因为它不像复选框那样工作


有没有人有一个代码示例来确定按钮的css中是否有活动类,而不使用XPATH?目前,我们将使用如上所述的CssSelector,通过这种方式,元素可以移动,文本可以更改,但只要autotag仍然存在,一切都很好。但是,我不清楚如何做到这一点,同时查找其他CSS(类)以确定它是否处于活动状态。

您可以使用这两种方法中的任何一种来获取元素的状态

getAttribute  
getCssValue  
isEnabled

关于这些方法的更多详细信息,请访问。

如果我理解正确,您只需要一个CSS选择器,它可以定位在特定属性中包含特定值的元素,在本例中,它是

这很简单,一个复杂的方法是:

button[class*='active']
*=
是一个属性通配符,允许您说出“A在该属性值的某处”

要特别查找一个
按钮
,该按钮具有一个
,该类包含
活动
,并且具有一个设置为
prf_bt1
自动标记
属性:

button[class*='active'][auto-tag='prf_bt1']

实际上,我更喜欢
按钮[class~='active']
稍微宽松一点。但是更好的是-
按钮。active
:D
是的,如果我只是在寻找类,我可以这样做,但在本例中,我正在使用cssselector寻找autotag属性,然后想知道它在类中是否也有活动标记。这是我正在努力解决的“一步到位”的问题。@Arran aha,是的,这就是我一直在寻找的。没有意识到双属性搜索是一种选择。将试一试,谢谢。我发现我也可以做FindElementsbyCSS(属性+活动),其中活动是“.active”。非常感谢。是的,我过去用过所有这些方法。但是,在本例中,我已经在使用cssselector查找具有autotag属性的项,然后想知道获得的元素是否具有活动类。你能详细说明你将如何使用这些方法来实现这一目标吗?