在我检查页面之前,Selenium找不到元素

时间:2018-06-05 10:54:46

标签: selenium-webdriver

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

按钮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个项目。 我究竟做错了什么? 感谢

1 个答案:

答案 0 :(得分:0)

您应该使用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
}