我试图仅在按钮被启用时单击按钮,如果按钮被禁用,我将不会单击该按钮并继续进行操作。
当我编写Xpath并检查webElement是否已启用时,导致始终启用,并且在html和启用与禁用之间的区别中我看不出太多差异。
帮我编写xpath,该xpath仅在启用元素时才起作用。
我试图在xpath下面: // button [NOT(@disable)and span [text()='More Steps']]
xpath无效。
当元素启用时:
<button class="slds-button slds-button--neutral showMoreButton uiButton" aria-live="off" type="button" data-aura-rendered-by="2703:0" data-aura-class="uiButton"><!--render facet: 2704:0--><span class=" label bBody" dir="ltr" data-aura-rendered-by="2706:0">More Steps</span><!--render facet: 2708:0--></button>
<span class=" label bBody" dir="ltr" data-aura-rendered-by="2706:0">More Steps</span>
当元素被禁用时:
<button class="slds-button slds-button--neutral showMoreButton uiButton" aria-live="off" type="button" disabled data-aura-rendered-by="2703:0" data-aura-class="uiButton"><!--render facet: 2704:0--><span class=" label bBody" dir="ltr" data-aura-rendered-by="2706:0">More Steps</span><!--render facet: 2708:0--></button>
<span class=" label bBody" dir="ltr" data-aura-rendered-by="2706:0">More Steps</span>
实际:当未禁用该元素时,用户可以单击该元素,但是在禁用该元素时,用户仍尝试单击该元素。
预期:仅当元素启用时,用户才可以单击该元素
注意:请勿将问题标记为重复,这是关于salesforce标签的,请理解。
提前感谢您的建议/解决方案
答案 0 :(得分:0)
尝试一下:
public boolean elementIsEnabled = new Boolean(false);
public boolean elementIsEnabled() {
if (driver.findElements(By.xpath("//button[contains(@data-aura-rendered-by,'2703:0')]")).size() == 1) {
elementIsEnabled = true;
}
else if (driver.findElements(By.xpath("//button[contains(@disabled data-aura-rendered-by,'2703:0')]")).size() == 1) {
elementIsEnabled = false;
}
return elementIsEnabled;
}
答案 1 :(得分:0)
禁用按钮时-xpath
//div[span/text()='More Steps']
返回两个元素。其中之一是未显示的DOM部分。
此较长的xpath将根据需要工作,因为它仅在活动窗格中显示
//div[contains(@class,'active')]//button[not(@disabled) and span/text()='More Steps']
答案 2 :(得分:0)
“尝试以下代码-
if(Globals.driver.findElement(By.xpath(“” // button [text()='your text']“”))。getAttribute(“” attribute“”)。equals(“” false“ “)){ Globals.driver.findElement(By.className(“”您的按钮类“”))。findElement(By.xpath(“” // button [text()='您的文本']“”))。click(); } 其他{ Globals.driver.findElement(By.className(“”您的按钮类“”))。findElement(By.xpath(“” // button [text()='您的文本']“”))。click();
}”