<div class="slds-show" data-aura-rendered-by="10155:0">
<div class="footer" data-aura-rendered-by="10156:0">
<div class="slds-grid slds-grid--align-end slds-m-top--large" data-aura-rendered-by="10157:0">
<div class="slds-show" data-aura-rendered-by="10158:0">
<button class="slds-button slds-button--neutral slds-m-left--small" data-aura-rendered-by="10159:0">Cancel</button>
<button class="slds-button slds-button--neutral slds-m-left--small" data-aura-rendered-by="10161:0">Save & New</button>
<button class="slds-button slds-button--brand slds-m-left--small" data-aura-rendered-by="10163:0">Save</button>
</div>
</div>
</div>
这是页面的一部分,我将不得不点击“保存”按钮 . 按钮不是唯一的,我需要从第一个div(slds-show)或者类的属性中找到它
有人能告诉我,为什么这个xpath没有找到这个元素?
//button[parent::div[@class='slds-show'][@class='slds-button slds-button--brand slds-m-left--small']]
我也尝试使用祖先,文本而不是类,结果是一样的 . 通过Firefox控制台找不到元素
4 回答
尝试更新您的表达式,如下所示:
请注意,XPath中的谓词
[@class='slds-button slds-button--brand slds-m-left--small']
打算测试父div
的@class
值,但不测试目标button
通过您的问题 to click on Save button 和 find it throughclassattribute from first div (slds-show) ,您可以使用更简单有效的 xpath ,如下所示:
您可以尝试以下xpath .
//*[@class="slds-show"]/button[text()="Save"]
要么
//*[class="slds-show"]/button[@class="slds-button slds-button--brand slds-m-left--small"]
xpath很容易变得太复杂,你也可以尝试这样的事情:
//button[text()='Cancel']
//button[text()='Save & New']
//button[text()='Save']
这些将返回您需要的确切按钮 . 如果您正在寻找特定的祖先,请将其包含在您的xpath中:
//div[@class="slds-show"]//button[text()='Save & New']