我在页面/表单中有两个按钮。
它们都具有“按钮添加规则”的类名称。
其中之一始终具有“ deviceid”的属性,该属性具有一定的值,而其中之一则从未如此。
当我在测试脚本中引用这些按钮时,我尝试使用此CSS选择器
FindElement(By.CssSelector(".button.add.regulation")).Click();
尝试单击不具有第二个属性的第一个按钮时,该按钮有效。
但是,当测试脚本在引用第二个按钮(具有相同的类名加上deviceID属性)时命中相同的代码片段时,它将失败,因为该元素不可见。
我们如何引用与另一个按钮共享类名但具有次要属性“ deviceid”的第二个按钮?
最佳答案
尝试下面的代码,让我知道结果:
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();
关于c# - 如何通过非null属性和ID查找元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42234056/