如何在Selenium中使链接列表可点击

1 投票
1 回答
28 浏览
提问于 2025-04-12 19:20

我有一段代码,可以找到网站上的所有链接,但我需要以一种方式存储这些链接,这样在运行Selenium的时候,我就可以点击特定的链接。

这是我的代码,我希望Selenium在我使用click()函数时能够打开特定的网站。请问我哪里做错了!

import selenium
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC


url = "https://www.python.org"

driver = webdriver.Chrome()
driver.get(url)
driver.minimize_window()

links = WebDriverWait(driver, 10).until(EC.presence_of_all_elements_located((By.XPATH, "//a")))

for link in links:
    href = link.get_attribute("href")
    if href is not None:
        print(href)
#
# go to link 0
#
link(0).click


driver.quit()

这是生成的错误信息

Traceback (most recent call last):
  File "/media/joe-2/Ubuntu-Storage1/Exuma-Snoops/RGD-code/link-test-2.py", line 25, in <module>
    link(0).click
TypeError: 'WebElement' object is not callable

1 个回答

0

这个说法是不对的:

link(0).click

获取列表中第一个索引并点击它的正确方法如下:

links[0].click()

更新: links[0].click() 这个代码只是会点击找到的元素,并不会在浏览器中打开链接的URL。

要打开从href中提取的URL,可以使用下面的代码:

driver.get(links[0].get_attribute("href"))

撰写回答