如何在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>
有人可以帮忙吗?
谢谢!
答案 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也是正确的。您不应按名称选择,因为此元素没有名称。至少要按类别或标签进行选择。