【问题标题】:how to click on the first result of a search on metacritc with selenium如何点击使用 selenium 搜索 metacritc 的第一个结果
【发布时间】:2019-03-13 12:46:20
【问题描述】:

如何点击 metacritc 搜索栏上的第一个搜索结果?

这是我目前所拥有的:

self.search_element = self.driver.find_element_by_name("search_term")
self.search_element.clear()
self.search_element.send_keys(self.game_line_edit.text())

self.link_to_click = self.driver.find_element_by_name("search_results_item")
self.link_to_click.click()

# self.game.setText(self.driver.find_element("search_results_item"))
self.game_line_edit.setText("")
self.driver.close()

但我收到此错误:

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"name","selector":"search_results_item"}

我意识到 selenium 找不到链接,但我不确定它是什么元素

这是我要点击的 HTML:

<a class="search_results_item" href="https://www.metacritic.com/game/pc/into-the-breach">
    <span class="metascore_w score_outstanding">90</span>
    <span class="title" data-mctitle="Into the Breach"><b>Into the</b> Breach</span>
    <span class="type secondary">PC Game</span>
    <span class="separ secondary">,</span>
    <span class="date secondary">2018</span>
</a>

有人可以帮忙吗?

谢谢!

【问题讨论】:

  • 当您发布 HTML 和/或代码时,请花一点时间使用像 jsbeautifier.org 这样的美化工具或您的 IDE 来正确格式化所有内容。如果您需要帮助在网站上正确格式化它,请参阅问题编辑器侧栏中的格式化帮助链接。它使它更容易阅读,从而使您的问题更有可能得到回答。谢谢!
  • 您正在使用find_element_by_name 按类名查找元素。您是否尝试过改用find_element_by_class_name

标签: python-3.x selenium-webdriver


【解决方案1】:

当你提到一个班级时,你是在按名字搜索。而是使用 CSS 选择器,例如

.find_element_by_css_selector(".search_results_item")

.search_results_item 表示一个名为“search_results_item”的类。

如果这不起作用,您可能需要等待。请参阅this answer 了解更多信息。

【讨论】:

    【解决方案2】:

    如果您对使用 xPath 没问题,您可以按索引选择。

    (//a[包含(@class,'search_results_item')])[1]

    @JeffC 也是正确的。您不应按名称选择,因为此元素没有名称。至少,按类或标签选择。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-31
      • 1970-01-01
      • 1970-01-01
      • 2020-12-26
      • 2020-06-08
      • 1970-01-01
      • 2019-04-05
      相关资源
      最近更新 更多