我有很多列表元素具有相同的类名但具有不同的id。
示例:
@customInclude('authenticated/partials/header2')
Blade::directive('customInclude', function($partial){
if(Config::get('constants.ORG_ID') === 'organizationId'){
return "<?php echo $partial; ?>";
}
});
我需要提取这些内容。 对于单个列表元素,这不是问题:
<li class="test class" id="111-11-111"> pass </li>
<li class="test class" id="222-22-222"> pass </li>
<li class="test class" id="333-33-333"> pass </li>
但我需要以某种方式达到下一个身份。
如果尝试driver.find_element_by_css_selector(".test.class").get_attribute("id")
,我会收到以下异常:
&#39;列表&#39;对象没有属性
find_elements_by...
。
有没有办法提取它们?
答案 0 :(得分:3)
你可以使用xpath:
listOfLi = driver.find_elements_by_xpath("//li[class='test class']")
或css选择器:
listOfLi = driver.find_elements_by_css_selector(".test.class")
您可以通过逐个索引来访问每个li元素:
for eachLiElement in listOfLi:
string = eachLiElement.get_attribute("id")
string
会为您提供每个元素的ID。
如果您只想获得第二个ID,可以通过
进行 secondId = listOfLi[1].get_attribute("id")
secondId
将222-22-222
答案 1 :(得分:0)
使用get_attribute()
提取所有<li>
标签的 id 属性值,您可以使用以下解决方案:
print([my_element.get_attribute("id") for my_element in driver.find_elements_by_css_selector('li.test.class')])