我在页面/表单中有两个按钮。
他们都有班级名称“按钮添加规则”
其中一个总是具有“deviceid”属性,它具有一定的价值,其中一个永远不会。
当我在测试脚本中引用这些按钮时,我尝试使用此CSS选择器
FindElement(By.CssSelector(".button.add.regulation")).Click();
在尝试单击第一个按钮时有效,该按钮没有第二个属性。
但是当测试脚本在引用第二个按钮(具有相同的类名PLUS,即deviceID属性)时遇到相同的代码片段时,它会失败,因为该元素不可见。
我们如何引用与另一个按钮共享类名的第二个按钮,但具有“deviceid”的辅助属性?
答案 0 :(得分:2)
尝试以下代码并告诉我结果:
FindElement(By.XPath("//button[@class='button add regulation' and @deviceid]")).Click();
这应该匹配具有deviceid
属性
如果两个按钮都有deviceid
属性,而其中只有一个没有空deviceid
:
FindElement(By.XPath("//button[@class='button add regulation' and string-length(@deviceid)>0]")).Click();
答案 1 :(得分:0)
正确实施。
请注意与原始帖子/问题相比使用不同的变量名称。
鉴于:
parentRow = applicationNumberLinks[rowIndex].FindElement(By.XPath("../../../."));
//ugly i know just bear with me
如果您想在该行中找到具有名称大于0的类的TD:
cellsInRow = parentRow.FindElements(By.XPath(".//td[string-length(@class)>0]"));
至少,这就是我需要的东西。请尝试并修改您的具体用例