首页 > 解决方案 > 在我检查页面之前,Selenium 找不到元素

问题描述

我有一个很奇怪的问题。有一个网站有以下两个按钮(当我检查页面时我可以看到它们):

按钮 1

<ul class=" _3dEhb">
   <li class = " LH76I">
      <a class="-na14 _81NM2" href="/preview/">
         <span class="g47FY 10XF41"</span>" preview"
   <li class = " LH76I">
      <a class="-na14 _81NM2" href="/launch/">
         <span class="g47FY 10XF41"</span>" launch"

我正在使用 python selenium 代码

buttons = driver.find_element_by_class_name('LH76I')

如果我在不检查网页的情况下运行它,这段代码会给我一个空列表。但是,如果我调试并检查网页,相同的代码会在列表中为我提供 2 项。我究竟做错了什么?谢谢

标签: selenium-webdriver

解决方案


您应该driver.find_elements_by_class_name改用,因为您正在尝试获取具有相同标识符的元素列表。试试下面的代码:

buttons = driver.find_elements_by_class_name('LH76I')

然后,如果你想点击什么的,你会这样做:

buttons[0].click()

编辑 - 您可以尝试通常提取列表项的方式:

main_list = driver.find_element_by_class_name('_3dEhb') //gets the main ul element
List<WebElement> list_items = main_list.findElements(By.tagName("li"));
for x in range(0, len(list_items)):
{
    // whatever you want to do with the item
}

推荐阅读