Принять запрос разрешения буфера обмена в Chrome с помощью selenium

#python #selenium #selenium-chromedriver #clipboard

#python #selenium #selenium-chromedriver #буфер обмена

Вопрос:

Я хочу скопировать некоторый контент, вставить его и проанализировать.

У меня безголовый Linux.

Когда я его копирую. Я попытался вставить его через pyperclip него, что дало мне not implemented ошибку. Затем я попробовал и установил xclip.

Это дало мне ошибку xsel: Can't open display: (null)

Поэтому я попробовал другой способ. использовать фрагмент javascript для его запуска в python для получения данных буфера обмена. это код

 javascript_script = '''
    var done = arguments[0];
    setTimeout(async () => {
  const text = await navigator.clipboard.readText();
  console.log(text);
  done(text);
}, 3000);

     '''

driver.execute_async_script(javascript_script)
  

Это работает хорошо, но требует принятия разрешения буфера обмена. но я не могу найти, как его включить.

Нужна помощь для решения с

  • xclip или
  • разрешить автоматический доступ к буферу обмена

Ответ №1:

Вот как разрешить буфер обмена в Chrome Selenium Node.js:

 const {Builder} = require('selenium-webdriver');
const {Options} = require('selenium-webdriver/chrome');

const options = new Options()
options.setUserPreferences({
    profile: {
        content_settings: {
            exceptions: {
                clipboard: {
                    ['http://YOURURL,*']:
                        {
                            "expiration": "0",
                            "last_modified": Date.now(),
                            "model": 0,
                            "setting": 1
                        },
                }
            }
        }
    }
})

const driver = await new Builder().forBrowser('chrome').setChromeOptions(options).build()