python - 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 或名称,我如何定位实际链接?
解决方案
您可以链接find_*
函数以获得更具体的 WebElement 查询:
first_result.find_element_by_tag_name("a").click()
推荐阅读
- msbuild - 如何使用 MSBuild 有条件地包含一个文件来代替另一个文件?
- r - 如何使用值多列聚合数据框中的多列
- reactjs - 将静态 React App 部署到 Heroku,但出现应用程序错误。运行 Heroku 日志时出现 H13 和 H10 错误 --tail
- python - Python Click:使用手动将 Option 对象附加到 Command 实例时出现 NoSuchOption 异常
- c++ - 如何创建一个紧密打包的无符号字节统一缓冲区?
- javascript - 消息在控制台中安慰两次 - ReeactJS
- python - 交叉熵损失在神经网络中返回无穷大
- ruby - 使用 Nokogiri 打开网站时出现问题 - 请求超时 - 应该归咎于 Etags?
- c# - 迁移 - FOREIGN KEY 约束
- c# - MSUnitTests 上的代理错误,3.1