首页 > 编程问答 >使用 selenium 在 python 中打开 chrome 中的链接

使用 selenium 在 python 中打开 chrome 中的链接

时间:2024-07-20 22:12:51浏览次数:10  
标签:python selenium-webdriver

通过此链接 https://bancadatistatisticaoas.inail.it/analytics/saw.dll?Dashboard&PortalPath=%2Fshared%2FBDS%2F_portal%2FINF_Definiti_Industria_e_Servizi 我需要单击“F Costruzioni”,然后单击 F 41 COSTRUZIONI ED埃迪菲西。这是我的代码,但它不起作用。我做错了什么?

# Initialize the WebDriver

driver = webdriver.Chrome(options=chrome_options) driver.maximize_window()

try:
    # Navigate to the page
    driver.get(
        "https://bancadatistatisticaoas.inail.it/analytics/saw.dll?Dashboard&PortalPath=%2Fshared%2FBDS%2F_portal%2FINF_Definiti_Industria_e_Servizi"
    )
    wait = WebDriverWait(driver, 90)

    # f_costruzioni_button = wait.until(EC.element_to_be_clickable((By.XPATH, "//span[text()='F COSTRUZIONI']")))
    # f_costruzioni_button.click()

    wait.until(EC.element_to_be_clickable((By.XPATH, "//table/tbody/tr/td[text()='F COSTRUZIONI']"))).click()

    # This is a simple sleep; for a more robust solution, check the download directory for a new file
    import time

    time.sleep(10)


finally:
    # Clean up by closing the browser
    driver.quit()

你的代码的问题在于,你试图点击包含文本的表格单元格(td 元素)本身,而不是它内部的链接。你需要定位到链接元素,然后点击它。

以下修改后的代码应该可以工作:

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

# 初始化 WebDriver
chrome_options = webdriver.ChromeOptions()
driver = webdriver.Chrome(options=chrome_options)
driver.maximize_window()

try:
    # 导航到页面
    driver.get(
        "https://bancadatistatisticaoas.inail.it/analytics/saw.dll?Dashboard&PortalPath=%2Fshared%2FBDS%2F_portal%2FINF_Definiti_Industria_e_Servizi"
    )
    wait = WebDriverWait(driver, 90)

    # 等待 F COSTRUZIONI 链接可点击,并点击
    f_costruzioni_link = wait.until(EC.element_to_be_clickable((By.XPATH, "//td[text()='F COSTRUZIONI']/a")))
    f_costruzioni_link.click()

    # 等待 F 41 COSTRUZIONI ED EDIFICI 链接可点击,并点击
    f_41_link = wait.until(EC.element_to_be_clickable((By.XPATH, "//td[text()='F 41 COSTRUZIONI ED EDIFICI']/a")))
    f_41_link.click()

    # 等待页面加载完成
    time.sleep(10)

finally:
    # 关闭浏览器
    driver.quit()

这段代码做了以下几件事:

  1. 使用 //td[text()='F COSTRUZIONI']/a 定位到包含文本 "F COSTRUZIONI" 的表格单元格内的链接元素。
  2. 点击该链接。
  3. 使用 //td[text()='F 41 COSTRUZIONI ED EDIFICI']/a 定位到包含文本 "F 41 COSTRUZIONI ED EDIFICI" 的表格单元格内的链接元素。
  4. 点击该链接。

这应该可以解决你的问题。如果你还有其他问题,请随时提问。

标签:python,selenium-webdriver
From: 78772948

相关文章

  • 七大排序算法的Python实现
    七大排序算法的Python实现1.冒泡排序(BubbleSort)算法思想冒泡排序通过重复交换相邻的未按顺序排列的元素来排序数组。每次迭代都将最大的元素“冒泡”到数组的末尾。复杂度分析时间复杂度:O(n^2)空间复杂度:O(1)defbubble_sort(arr):n=len(arr)for......
  • python反序列化
    之前hgame中遇到python反序列化,这次正好借分享会来尽可能详细学习一下python反序列化基础知识什么是序列化?反序列化?在很多时候为了方便对象传输,我们往往会把一些内容转化成更方便存储、传输的形式。我们把“对象->字符串”的翻译过程称为“序列化”;相应地,把“字符串->对......
  • 我在 python 项目中不断收到“无法识别图像文件中的数据”错误
    我正在尝试向我的TK窗口添加一个图标,但我不断收到一条错误消息:Traceback(mostrecentcalllast):File"C:\Users\roger\source\repos\PythonApplication\PythonApplication.py",line7,in<module>windowIcon=tk.PhotoImage(file="C:/Users/roger/Downloa......
  • Python学习笔记41:游戏篇之外星人入侵(二)
    前言在上一篇文章,我们已经创建好了项目目录,在今天,我们主要编写入口模块的功能。mainmain.py模块是我们游戏程序的入口,所有我们需要在模块中编写游戏主启动以及主页面相关的代码。当前我们的main模块是这样的,这是我们创建项目时默认生成一些代码,接下来我们就要进行我们......
  • Python学习笔记39:进阶篇(二十八)pygame的使用之按键映射及按键失效问题解决
    前言基础模块的知识通过这么长时间的学习已经有所了解,更加深入的话需要通过完成各种项目,在这个过程中逐渐学习,成长。我们的下一步目标是完成pythoncrashcourse中的外星人入侵项目,这是一个2D游戏项目。在这之前,我们先简单学习一下pygame模块。私信我发送消息python资料,......
  • Python学习笔记40:游戏篇之外星人入侵(一)
    前言入门知识已经学完,常用标准库也了解了,pygame入门知识也学了,那么开始尝试小游戏的开发。当然这个小游戏属于比较简单的小游戏,复杂的游戏需要长时间的编写累计开发经验,同时也需要一定的时间才能编写出来。现在的话还是嫩了点。从基础的简单的开始,学习实践,慢慢的成长才......
  • Python学习笔记37:进阶篇(二十六)pygame的使用之输入处理
    前言基础模块的知识通过这么长时间的学习已经有所了解,更加深入的话需要通过完成各种项目,在这个过程中逐渐学习,成长。我们的下一步目标是完成pythoncrashcourse中的外星人入侵项目,这是一个2D游戏项目。在这之前,我们先简单学习一下pygame模块。私信我发送消息python资料,......
  • Python学习笔记38:进阶篇(二十七)pygame的使用之时间与帧数控制
    前言基础模块的知识通过这么长时间的学习已经有所了解,更加深入的话需要通过完成各种项目,在这个过程中逐渐学习,成长。我们的下一步目标是完成pythoncrashcourse中的外星人入侵项目,这是一个2D游戏项目。在这之前,我们先简单学习一下pygame模块。私信我发送消息python资料,......
  • 音频文件降噪及python示例
    操作系统:Windows10_x64Python版本:3.9.2noisereduce版本:3.0.2从事音频相关工作,大概率会碰到降噪问题,今天整理下之前学习音频文件降噪的笔记,并提供Audacity和python示例。我将从以下几个方面展开:noisereduce库介绍使用Audacity进行降噪使用fft滤波降噪使用noisereduce进......
  • Python; Django 添加字符到路径名导致操作系统错误 22
    我一直在尝试让django渲染我创建的模板。起初它说模板不存在,但是一旦我修复了错误,它现在就会向路径添加字符,并且因此找不到模板。路径应该是:C:\\Users\\ABC\\Desktop\\science_crowd\\Lightweight_Django\\placeholder\\home.html但是错误说:它找不到:C:\\Us......