无法在禁用和启用状态下断言双作用按钮

Unable to Assert dual-actioned button in it's disabled and enabled state

我在一个下面有一个按钮 class。它们被配置为双重作用。 它们在特定事件之前被禁用。他们的 DOM 被禁用时:

    <div class="doc-buttons">
<a href="#" onclick="actualsize();" id="tip-size" class="left btn btn-white btn-rounded btn-sm icon-size tooltipstered" disabled="disabled">
    <i></i>
</a>
<a href="#" onclick="scaletofit();" id="tip-fit" class="left btn btn-white btn-rounded btn-sm icon-fit tooltipstered" disabled="disabled" style="display: none;">
    <i></i>
</a>                

...

在某个事件之后,它们被启用并且它们的 DOM 更改为:

<div class="doc-buttons">
<a href="#" onclick="actualsize();" id="tip-size" class="left btn btn-white btn-rounded btn-sm icon-size tooltipstered">
    <i></i>
</a>
 <a href="#" onclick="scaletofit();" id="tip-fit" class="left btn btn-white btn-rounded btn-sm icon-fit tooltipstered" style="display: none;">
    <i></i>
 </a>                

... ... ...

我所要做的就是断言(使用 TestNG)它们在正确的时间启用和禁用(听起来很简单!)

ele1 = _driver.findElement(By.xpath("//a[@id='tip-size']"));
ele2 = _driver.findElement(By.xpath("//a[@id='tip-fit']"));

ele1,2代表这些button/s.

的定位器
System.out.println("ele1.getAttribute("disabled")");
System.out.println("ele2.getAttribute("disabled")");

令我惊讶的是,无论按钮的状态如何(启用或禁用),上面的打印语句总是 return TRUE

我应该如何断言它们处于禁用和启用状态?

PS:我是 WebDriver、Java 和 TestNG 的新手。对博客等的任何解释,link 将不胜感激

你的应该可以。不知道为什么不。但是,另一种解决方法可能是检查 JavaScriptExecutor

中是否存在该属性
boolean hasTipSize = (boolean) ((JavascriptExecutor)driver).executeScript("return document.getElementById('tip-size').hasAttribute('disable')");
boolean hasTipFit = (boolean) ((JavascriptExecutor)driver).executeScript("return document.getElementById('tip-fit').hasAttribute('disable')");

他们应该 return true if disabled attribute present else false

在所谓的"event"之后应该重新初始化元素。

步骤: 1.捕获元素ele1,ele2。

ele1.getAttribute("disabled") will be "true/disabled"
ele2.getAttribute("disabled") will be "true/disabled"
  1. 执行事件(改变元素的状态)

  2. 现在再次捕获元素。

    ele1 = _driver.findElement(By.xpath("//a[@id='tip-size']")) ele2 = _driver.findElement(By.xpath("//a[@id='tip-fit']"));

  3. 现在提取元素 properties/attributes。

    ele1.getAttribute("disabled") should be updated ele2.getAttribute("disabled") should be updated