【问题标题】:How to distinguish 2 button base on their parent/ancestor element in Selenium (PYTHON)?如何根据 Selenium (PYTHON) 中的父/祖先元素区分 2 个按钮?
【发布时间】:2021-12-29 03:15:21
【问题描述】:
<a href="/google.com">
<div> ABC </div>
<span>
<button class="btn"> Show more </button>
<span/>
</a>

<div>
<div>ABC</div>
<span>
<button class="btn"> Show more </button>
<span/>
</div>

正如你们在这里看到的,我们有 2 个 BUTTONS,我需要点击其祖先不是 &lt;a/&gt; 标签的 BUTTON,因为如果我点击祖先是标签的按钮,它会将我重定向到其他页面。所以我不想要这种行为。

显而易见的解决方案是我可以为此使用绝对 Xpath,但这不是一个好方法,因为 HTML DOM 或 css 结构可以更改,所以它' 不稳定。

那么我如何区分 2 个按钮,使用祖先或相关的东西?我的意思是其他更好的方法。 谢谢你们帮我这么多!

【问题讨论】:

    标签: python selenium testing web-scraping xpath


    【解决方案1】:

    要选择没有a 标签祖先的button,可以使用以下XPath:

    //button[not(ancestor::a) and(contains(.,'Show more'))]
    

    【讨论】:

    • andcontains 之间的那些额外括号是不必要的。这应该具有相同的目的//button[not(ancestor::a) and contains(.,'Show more')]
    • 你说得对,谢谢。但是,我认为没有这些括号的答案不会好得多。还是真的很重要?
    猜你喜欢
    • 1970-01-01
    • 2016-05-23
    • 1970-01-01
    • 2018-05-29
    • 2021-04-08
    • 2016-04-25
    • 2012-03-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多