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

时间:2013-10-18 05:55:15

标签: c# selenium automation selenium-webdriver

我们有一个新的页面,我们正在自动化,并且自举模板中的一些功能会导致自动化的一些复杂性。

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

[FindsBy(How = How.CssSelector, Using = "body [autotag='prf_rd_1']")]
        private IWebElement myElement;

此时,您可以在Webdriver代码中使用element.isSelected来查看是否已勾选。

但是,使用bootstrap开发人员已更改为使用活动或不活动的按钮,例如:

<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,这样元素可以移动,文本可以改变,但只要自动标记仍然存在,它就是好的。但是,我不清楚我是如何做到这一点并同时寻找其他CSS(该类)来确定它是否有效。

2 个答案:

答案 0 :(得分:2)

如果我理解正确,你只需要一个CSS选择器,它可以在特定属性中找到包含特定值的元素,在这种情况下,它是class

这很容易,一个精心设计的方法是:

button[class*='active']

*=是一个属性通配符,允许您说“其中A位于该属性值的某个位置”。

要专门查找button class,其active包含auto-tag prf_bt1属性设置为{{ 1}}:

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

答案 1 :(得分:0)

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

getAttribute  
getCssValue  
isEnabled

您可以在here获取有关这些方法的更多详细信息。