Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 是否可以从几个同名元素中获取_attribute()?_Python_List_Selenium_Selenium Webdriver_Css Selectors - Fatal编程技术网

Python 是否可以从几个同名元素中获取_attribute()?

Python 是否可以从几个同名元素中获取_attribute()?,python,list,selenium,selenium-webdriver,css-selectors,Python,List,Selenium,Selenium Webdriver,Css Selectors,我有许多具有相同类名但id不同的列表元素 例如: <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> 但我需要找到下一个身份证。 如果尝试通过……查找元素,我会收到以下异常

我有许多具有相同类名但id不同的列表元素

例如:

<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>
但我需要找到下一个身份证。 如果尝试通过……
查找元素,我会收到以下异常:

“列表”对象没有属性
“获取属性”

有办法提取它们吗?

您可以使用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]。获取属性(“id”)

secondId
将使用
get_attribute()
提取所有
  • 标记的id属性值,您可以使用以下解决方案:

    print([my_element.get_attribute("id") for my_element in driver.find_elements_by_css_selector('li.test.class')])
    

    是的,通过返回在列表上循环find_元素,并从每个元素中提取id,就像使用find_元素时一样
    print([my_element.get_attribute("id") for my_element in driver.find_elements_by_css_selector('li.test.class')])