Python Selenium如何正确获取点击按钮后复制到剪贴板的内容
问题原因
click()方法本身无返回值,因此将点击操作的结果赋值给value变量得到的结果必然是None。点击按钮后目标值已经存入系统剪贴板,你需要额外读取剪贴板内容才能获取对应值。
实现方案
方案1:读取系统剪贴板
- 先安装依赖库:
pip install pyperclip - 若使用Linux系统,还需要额外安装系统依赖:
sudo apt install xclip - 修正后代码示例:
from selenium import webdriver from selenium.webdriver.common.by import By import pyperclip # 此处替换为你实际使用的浏览器驱动初始化逻辑 driver = webdriver.Chrome() # 点击按钮将内容复制到剪贴板 driver.find_element(By.XPATH, '//*[@id="app-content"]/div/div[4]/div/div/div/div[1]/div/div/div/button').click() # 读取剪贴板内容存入变量 value = pyperclip.paste() print(value)
方案2:直接读取元素属性(更稳定)
绝大多数场景下,复制按钮会将待复制内容提前存储在data-clipboard-text自定义属性中,你可以直接获取该属性值,不需要触发点击操作,也不需要依赖剪贴板,稳定性更高:
from selenium import webdriver from selenium.webdriver.common.by import By driver = webdriver.Chrome() value = driver.find_element(By.XPATH, '//*[@id="app-content"]/div/div[4]/div/div/div/div[1]/div/div/div/button').get_attribute('data-clipboard-text') print(value)
内容的提问来源于stack exchange,提问作者Rakesh Poddar
相关产品推荐
相关产品推荐

