【发布时间】:2020-06-02 04:23:14
【问题描述】:
我正在学习 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 的 sn-p :
如何定位实际的 <a> 链接,而它没有任何类名、id 或名称?
【问题讨论】:
-
presence_of_element_located没有return元素 - 它只是returnstrue` 或false- 也就是说,找到与否。find_element_by_...方法可用于return元素。 -
@Haezer 您要定位哪个元素
By.CLASS_NAME, "mw-search-result-heading"?
标签: python selenium web-scraping