我正在尋找一種解決方案來獲取已知元素的第二個父元素(div),然后使用 python 在 selenium 中獲取具有子元素的子元素。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<div class="p1">
<div class="p2">...</div>
<div class="p2">
<div class="p3">
<span class="target">b_Kunden</span>
</div>
</div>
<div class="p2">...</div>
<div class="p2">...</div>
<div class="p2">
<div class="p3">
<div class="p4">
<div class="p5">
<div class="p6">
<button type="button" class="b1">button i want to click</button>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="p1">
<div class="p2">...</div>
<div class="p2">
<div class="p3">
<span class="target">different</span>
</div>
</div>
<div class="p2">...</div>
<div class="p2">...</div>
<div class="p2">
<div class="p3">
<div class="p4">
<div class="p5">
<div class="p6">
<button>some button</button>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="p1">
<div class="p2">...</div>
<div class="p2">
<div class="p3">
<span class="target">different</span>
</div>
</div>
<div class="p2">...</div>
<div class="p2">...</div>
<div class="p2">
<div class="p3">
<div class="p4">
<div class="p5">
<div class="p6">
<button>some button</button>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
我正在使用 xpath 獲取我正在尋找的元素并檢查特定文本(“b_Kunden”)(作業正常):
temp = browser.find_elements_by_xpath("//*[contains(text(), 'b_Kunden')]")[0]
** 我無法通過簡單的 className 等訪問它。這只是環境中的虛擬 HTML,我需要從跨度文本為“b_Kunden”的位置上升到 p1 類,然后下降到子元素 p6 以單擊其中的按鈕 **
原因是我需要準確按下跨度文本為 b_Kunden 的部分的按鈕。因為這些部分的數量是可變的,所以我無法通過示例來計算和訪問它們:[1] 類運算子。我需要找到術語“b_Kunden”并按下 p1 部分中的相關按鈕。
如果有人可以幫助我解決這個問題,我會很高興。
最好的問候,利亞姆
uj5u.com熱心網友回復:
這可能會對您有所幫助(假設您提到的第二個父級在層次結構中倒退(更高的 DOM):
browser.find_elements_by_xpath("//*[contains(text(), 'b_Kunden')][1]//parent::div//parent::div")
更新(@Liam 提供的注釋和 html 塊的代碼)
//*[text()='b_Kunden']//ancestor::div//button
這是帶有 DOM 突出顯示到按鈕的 HTML。我希望這就是你要找的。
HTML DOM 高亮快照
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/411897.html
標籤:
下一篇:我無法將多個影像調整為不同的尺寸
