如何根据 Selenium (PYTHON) 中的 parent/ancestor 元素区分 2 个按钮?

How to distinguish 2 button base on their parent/ancestor element in Selenium (PYTHON)?

<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 个按钮,我需要点击祖先不是 <a/> 标签的按钮,因为如果我点击祖先是标签的按钮,它会将我重定向到其他页。所以我不想要这种行为。

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

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

到 select 没有 a 标记祖先的 button 可以使用以下 XPath 完成:

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