python - 使用 Selenium 单击元素后如何使用 xsel 提取剪贴板内容

标签 python python-3.x selenium subprocess clipboarddata

以下代码使用 Seleniumxsel驱动程序将网页中的某些内容复制到剪贴板后,预计会提取剪贴板内容:

import unittest
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
import subprocess


class Test(unittest.TestCase):
    def run(self):
        self.driver = webdriver.Firefox()
        self.driver.get('some_uri')
        self.wait = WebDriverWait(self.driver, 20)
        link_elem = self.wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "i[data-original-title='Copy to clipboard']")))
        link_elem.click()
        self.wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "i[data-original-title='Copied']")))        
        link = subprocess.check_output(["xsel"])
        print(link)

打印了剪贴板内容,但不是Python代码复制的内容,而是过去的一些剪贴板内容。如何正确提取剪贴板内容?

最佳答案

解决方案是使用:

link = subprocess.check_output(["xsel", "--clipboard"]) 

而不是

link = subprocess.check_output(["xsel"])

来自xsel man :

-b, --clipboard operate on the CLIPBOARD selection.

默认情况下,xsel 会回显主选择,而我需要CLIPBOARD 选择。 更多关于它 here .

关于python - 使用 Selenium 单击元素后如何使用 xsel 提取剪贴板内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48359983/

相关文章:

python - Python 的 matplotlib.pyplot.quiver 究竟是如何工作的?

python-3.x - 如何从 Youtube Data API v3 获取最大搜索结果?

python - Jupyter Notebook 无法打包 folium

python - 如何将 startTLS 与 ldaptor 一起使用?

python - 为什么我无法从另一个源文件导入 Django 模型?

Python:将数据从大型 csv 导入到 sqlite 数据库

algorithm - 初学者(Python 3.6.1): Why isn't this script working?

Java - 拖放不适用于 selenium 3.8

java - Sendkeys 不一致地丢弃字母

java - Selenium webdriver 下载 pdf