如果父对象中的某个对象不在子对象中,如何从父对象中附加该对象?

2024-03-30 06:36:59 发布

您现在位置:Python中文网/ 问答频道 /正文

使用python3.7。你知道吗

我有15个类似的div,name=“parentclass”,一些childs包含“specific class”,一些childs没有,如果没有“specific class”,我必须出现在我的\u list[]中

我想做什么:

my_list = []

for i in range(1,16):
    check = driver.find_element_by_xpath("
.//div[not(contains(@class, "specific-class"))] and
./parent::div[@class, "parentclass"]")

    code = check.get_attribute("code")
    my_list.append(code)

print(my_list)

这个结果应该是(3/15):

B00UXIHA0W , B00YHY6IFQ , B01IH34UMA

但不起作用

如果我这样做了:

my_list = []

for i in range(1,16):
    check = driver.find_element_by_xpath("//div[@class='parentclass']["+str(i)+"]")
    code = check.get_attribute("code")
    my_list.append(code)

print(my_list)

这给了我所有父类代码(15/15)的结果:

B01N1UX8RW, B0761VJFWY , B01DG8DA22 , B00UXIHA0W , B00D8P5T0U , B00YHY6IFQ, B00NCUJCPE , B01IH34UMA , B01KWTGIBS , B00X6DVBGA , B07BHXY78B , B07DQWT15Y , B07HL5K4RM , B071CPQYD5 , B07MDB6PSD

我不想那样。你知道吗

我的1。部门:

<div code="B01N1UX8RW" class="parentclass">
    <div class="class1">
        <div class="class2">
            <div class="class3">..</div>
            <div class="class4">
                <div class="class5">
                    <div class="specific-class">
                       <span>text</span>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

我的8。部门:

<div code="B01IH34UMA" class="parentclass">
    <div class="class1">
        <div class="class2">
            <div class="class3">..</div>
            <div class="class4">
                <div class="class5">
                    <span>text</span>
                </div>
            </div>
        </div>
    </div>
</div>

Tags: indivformycheckdrivercoderange
1条回答
网友
1楼 · 发布于 2024-03-30 06:36:59

您可以使用XPath

//div[@class='parentclass'][not(.//div[@class='specific-class'])]
^ find a DIV that contains the class 'parentclass'
                           ^ but does not have a descendant DIV that contains the class 'specific-class'

你的代码看起来像

my_list = []

for element in driver.find_elements_by_xpath("//div[@class='parentclass'][not(.//div[@class='specific-class'])]"):
    my_list.append(element.get_attribute("code"))

print(my_list)

相关问题 更多 >