我将直接跳转到代码:
<ul id="SearchResultsDetails-MainContent" class="list unstyled SearchResultsBlock">
<li id ="result_pdb5J55" class="row oneSearchResult"></li>
<li id ="result_pdb5LUF" class="row oneSearchResult"></li>
<li id ="result_pdb5B1J" class="row oneSearchResult"></li>
< ... >
我已经建立了一个基本的for循环,如下所示:
data=[]
some_objects=driver.find_elements_by_id("SearchResultsDetails-MainContent")
for objects in some_objects:
datum=objects.find_element_by_class_name("row_oneSearchResult").get_attribute("id")
data.append(datum)
我正在尝试刮擦“ result_pdb5J55”,“ result_pdb5LUF”等。
但是,我对此有很多困难。IDE不会返回任何结果或返回NoSuchElementException。
SearchResultsDetails-MainContent
是单个父元素的ID,列表是该元素的子元素。此外,孩子们有两个类row
和oneSearchResult
,没有row_oneSearchResult
。您有几种选择
使用父选择器找到孩子
data=[]
some_objects = driver.find_elements_by_css_selector("#SearchResultsDetails-MainContent > .oneSearchResult")
for ob in some_objects:
data.append(ob.get_attribute("id"))
找到父元素并使用它来找到子元素
data=[]
parent = driver.find_element_by_id("SearchResultsDetails-MainContent")
some_objects = parent.find_elements_by_class_name("oneSearchResult")
for ob in some_objects:
data.append(ob.get_attribute("id"))
通过定位器找到孩子
data=[]
# by class oneSearchResult
some_objects = parent.find_elements_by_class_name("oneSearchResult")
#or by both classes
some_objects = parent.find_elements_by_css_selector(".row.oneSearchResult")
#or by partial id
some_objects = parent.find_elements_by_css_selector("[id*='result_pdb']")
for ob in some_objects:
data.append(ob.get_attribute("id"))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句