python - 如果它不在孩子中,我如何从父母中附加一些东西?
问题描述
使用Python 3.7。
我有 15 个类似的 div,名称为“parentclass”,一些包含“特定类”的孩子和一些孩子没有,如果没有“特定类”,我必须附加到 my_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:
<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:
<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>
解决方案
您可以使用 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)
推荐阅读
- python - 为什么 scikit-learn r2 得分为零?
- python - Heroku 通过外部 SMTP 服务器发送邮件
- python - 是否有可能在字典中查找字符串?
- drupal - 在没有编辑权限的情况下翻译内容时访问菜单设置
- java - 用于容器化应用程序的 Open JDK 和 Oracle JDK 之间的区别
- java - 我的 Spring Boot 项目有映射异常
- javascript - 在 React 中将数组转换为组件
- html - 在悬停时显示包含整个文本的吐司
- python - 使用Openpyxl将IF公式插入Excel后出现“@”符号
- python - Django 外键 JWT 身份验证