禁用按钮时如何编写xpath:Selenium+java+salesforce
我试图点击按钮,只有当它是启用的,如果按钮被禁用,我不会点击按钮,并继续下去
当我编写Xpath并检查webElement是否已启用时,会导致始终启用,并且我看不到html中有多少区别,也看不到启用和禁用之间的区别
请帮助我编写xpath,它应该只在启用元素时才起作用
我试着: //按钮[不(@disable)和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标签的,请理解
提前感谢您的建议/解决方案
# 1 楼答案
当按钮被禁用时-xpath
返回两个元素。其中一个位于DOM中未显示的部分
check out the DOM tree
这个较长的xpath将根据需要工作,因为它只在活动窗格中查看
# 2 楼答案
试试这个:
# 3 楼答案
“尝试下面的代码-
if(Globals.driver.findElement(By.xpath(“//button[text()='your text']))。getAttribute(“属性”)。等于(““假”)){ 环球。驾驶员findElement(按.className(“您的按钮类”))。findElement(By.xpath(“//按钮[text()='your text']]”)。点击(); } 否则{ 环球。驾驶员findElement(按.className(“您的按钮类”))。findElement(By.xpath(“//按钮[text()='your text']]”)。点击()
}”