Просто присоединился к этому StackExchange, чтобы выразить признательность за ответ Джереми выше, а также добавить несколько строк JS, которые я использовал для экспорта списка вкладок (поскольку копирование с помощью курсора не является идеальным!)
По словам Джереми, выберите Remote devices
под More tools
на Chrome DevTools ⋮
значок (справа вверху панели):
- настроить отладку USB на вашем телефоне (под
Settings
⇒ Developer options
, рут не требуется)
- обратите внимание, что вы должны включить
Developer options
меню, оно скрыто по умолчанию для защиты пользователей
- на моем телефоне это требовало многократного нажатия на номер сборки под
Settings
⇒About Device
- как только это будет сделано, подключите USB и разрешите соединение MTP
- когда панель удаленного устройства Chrome devtools открыта, телефон запросит разрешение отладки по USB
- Вы можете всегда доверять компьютеру
Теперь устройство подключено,
- откройте второе представление devtools в представлении devtools, из которого вы выбрали,
Remote devices
чтобы иметь возможность получать список вкладок с помощью JavaScript
- обратите внимание, что вы должны иметь devtools в режиме всплывающего окна (используйте вертикальный символ многоточия в правом верхнем углу панели), чтобы это можно было поднять, в противном случае Command + Option + J (MAC)
Ctrl
+ Shift
+ J
(WINDOWS) просто закроются. первая панель devtools.
- разверните список от первых нескольких элементов до всех вкладок, нажав «Показать больше»
- чтобы написать скрипт для списка, используйте следующие несколько строк кода [введено в консоли 2-го окна devtools]
- NB
/deep/
- это селектор CSS для ввода #shadow-root
элементов DOM
Чтобы экспортировать список всех URL-адресов, открытых в Chrome для Android, я решил просто превратить этот список в текстовую строку с форматом уценки и скопировать его в буфер обмена.
tabs = Array.from(document.querySelectorAll('div /deep/ div /deep/ div /deep/ div /deep/ div /deep/ .device-page-list .vbox'), s => ({name: s.querySelector('.device-page-title').textContent, url: s.querySelector('.device-page-url .devtools-link').href}))
str = '';
for (i=0;i<tabs.length;i++){
str += '['+tabs[i]['name']+']('+tabs[i]['url']+')\n'
}
copy(str)
После этого в буфере обмена появится список, похожий на этот:
[How can I export the list of open Chrome tabs? - Android Enthusiasts Stack Exchange](https://android.stackexchange.com/questions/56635/how-can-i-export-the-list-of-open-chrome-tabs)
[Get Started with Remote Debugging Android Devices | Tools for Web Developers | Google Developers](https://developers.google.com/web/tools/chrome-devtools/remote-debugging/)
[How To Enable USB Debugging On Your Android Phone](https://www.groovypost.com/howto/mobile/how-to-enable-usb-debugging-android-phone/)
[Configure On-Device Developer Options | Android Studio](https://developer.android.com/studio/debug/dev-options.html)
...
Обновить
По какой - то причине , я получаю сообщение об ошибке некоторое время , заявив , что не удалось получить href
атрибут null
элемента (когда я проверить его это невидимый узел, кто знает). Чтобы обойти это, используйте эту версию вместо:
tabs = document.querySelectorAll('div /deep/ div /deep/ div /deep/ div /deep/ div /deep/ .device-page-list .vbox')
str = '';
for (i=0;i<tabs.length;i++){
if (tabs[i].querySelector('.device-page-url .devtools-link') != null){
str += '- ['+tabs[i].querySelector('.device-page-title').textContent + '](' + tabs[i].querySelector('.device-page-url .devtools-link').getAttribute('href') +')\n'
} else {
console.log(tabs[i])
}
}
copy(str)