用selenium进行python webscraping:找不到模态元素

时间:2015-08-16 18:08:10

标签: selenium web-scraping

我想转到http://ted.com/talks,点击"查看所有主题"在"主题"下拉列表,然后单击一个随机字母标题,如" C"或" D-E"。但是,我不知道如何在该特定字母标题的模态弹出窗口中找到该元素。

当我点击" Inspect Element"

时,这就是字母标题元素的样子
<li class="topic-select__range">
  <a class = "topic-select__range__link" href="#" data-index="0">A-B</a>
</li>
<li class="topic-select__range">
  <a class = "topic-select__range__link" href="#" data-index="1">C</a>
</li>
<li class="topic-select__range">
  <a class = "topic-select__range__link" href="#" data-index="2">D-E</a>
</li>

... etc.

我的程序可以一直查看所有主题,但是当我尝试单击字母标题时获取无法找到元素错误。这是我的代码片段到目前为止的样子:

# Each header is assigned a number. A header is picked at random, and clicked. 
# [ERROR: Cannot locate element.]
random_letter = random.randint(0, 8)
topics_window = browser.find_element_by_class_name("select-modal__content topic-select") # error here, when program tries to find modal popup or tags within it
letter_headers = topics_window.find_element_by_class_name("topic-select__range__link")
letter_headers[random_letter].click()

1 个答案:

答案 0 :(得分:0)

我找不到使用selenium访问模态JavaScript内容的方法。相反,我找到了一种使用Web API的方法。