如何单击使用硒对metacritc进行搜索的第一个结果

时间:2018-10-08 19:50:56

标签: python-3.x selenium-webdriver

如何在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"}

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

这是我要单击的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>

有人可以帮忙吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

当您指代课程时,您正在按名称搜索。而是使用CSS选择器,例如

.find_element_by_css_selector(".search_results_item")

.search_results_item表示名称为“ search_results_item”的类。

如果这不起作用,则可能需要等待。有关更多信息,请参见this answer

答案 1 :(得分:0)

如果您满意使用xPath,则可以按索引进行选择。

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

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