1

以下代码使用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代码复制的,而是过去的一些剪贴板内容。如何正确提取剪贴板内容?

4

1 回答 1

1

解决方案是使用:

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

代替

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

来自xsel 人

-b, --clipboard 对 CLIPBOARD 选择进行操作。

默认情况下, xsel与PRIMARY 选择相呼应,我需要CLIPBOARD 选择。更多关于它的信息

于 2018-01-20T19:15:33.470 回答