我们有一个新的页面,我们正在自动化,并且自举模板中的一些功能会导致自动化的一些复杂性。
传统上,通过复选框或单选按钮,我们使用标签来识别它:
[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(该类)来确定它是否有效。
答案 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)