簡體   English   中英

Python Selenium 獲得第n個父母和第n個孩子

[英]Python Selenium get nth parent and nth child

我正在尋找一種解決方案來獲取已知元素的第二個父元素(div),然后在 selenium 和 python 中獲取帶有子元素的子元素。

<!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 我需要 go 到 p1 class 從哪里向下到按鈕,然后單擊它里面的子元素“p6_”

原因是我需要准確按下跨度文本為 b_Kunden 的部分的按鈕。 因為這些部分的數量是可變的,所以我無法通過示例來計算和訪問它們:[1] 類運算符。 我需要找到術語“b_Kunden”並按下 p1 部分中的相關按鈕。

如果有人可以幫助我解決這個問題,我會很高興。

最好的問候,利亞姆

這可能會對您有所幫助(假設您提到的第二個父級在層次結構中倒退(更高的 DOM):

browser.find_elements_by_xpath("//*[contains(text(), 'b_Kunden')][1]//parent::div//parent::div")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM