gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 08:06:28 25 4
gpt4 key购买 nike

我在一个类下有一个按钮。它们被配置为双重作用。它们在某个事件之前被禁用。禁用时的 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 代表这些按钮的定位器。

System.out.println("ele1.getAttribute("disabled")");
System.out.println("ele2.getAttribute("disabled")");

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

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

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

最佳答案

你的应该可以工作。不知道为什么不。但是,另一种解决方法可能是检查该属性是否与 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')");

如果存在disabled属性,它们应该返回true,否则false

关于javascript - 无法在禁用和启用状态下断言双操作按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31024479/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com