首页 文章

Xpath找不到元素(父/祖先)

提问于
浏览
1
<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 &amp; 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 回答

  • 0

    尝试更新您的表达式,如下所示:

    //button[parent::div[@class='slds-show'] and @class='slds-button slds-button--brand slds-m-left--small']
    

    请注意,XPath中的谓词 [@class='slds-button slds-button--brand slds-m-left--small'] 打算测试父 div@class 值,但不测试目标 button

  • 0

    通过您的问题 to click on Save buttonfind it throughclassattribute from first div (slds-show) ,您可以使用更简单有效的 xpath ,如下所示:

    //div[@class='slds-show']/button[@class='slds-button slds-button--brand slds-m-left--small']
    

    注意:类属性slds-button - brand对于Save按钮是唯一的 .

  • 0

    您可以尝试以下xpath .

    • //*[@class="slds-show"]/button[text()="Save"]

    要么

    • //*[class="slds-show"]/button[@class="slds-button slds-button--brand slds-m-left--small"]
  • 0

    xpath很容易变得太复杂,你也可以尝试这样的事情:

    • //button[text()='Cancel']

    • //button[text()='Save & New']

    • //button[text()='Save']

    这些将返回您需要的确切按钮 . 如果您正在寻找特定的祖先,请将其包含在您的xpath中:

    //div[@class="slds-show"]//button[text()='Save & New']

相关问题