首页 > 解决方案 > Selenium :单击 div 内的链接

问题描述

我正在学习 selenium,我正在尝试一件简单的事情:单击 wikipedia 上搜索的第一个结果。

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

PATH = "chromedriver.exe"
driver = webdriver.Chrome(PATH)
driver.get("https://en.wikipedia.org")

# Input in the search bar
search = driver.find_element_by_id("searchInput")
search.send_keys("python", Keys.RETURN)


wait = WebDriverWait(driver, 10)
first_result = wait.until(
    EC.presence_of_element_located((By.CLASS_NAME, "mw-search-result-heading"))
)

first_result.click()

所以我可以选择第一个结果的标题。但我无法点击它。我认为这是因为我单击的是<div>包含链接,而不是实际链接。这是 HTML 的片段:

在此处输入图像描述

<a>如果没有任何类名、id 或名称,我如何定位实际链接?

标签: pythonseleniumweb-scraping

解决方案


您可以链接find_*函数以获得更具体的 WebElement 查询:

first_result.find_element_by_tag_name("a").click()

推荐阅读