#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()