Щойно приєднавшись до цього StackExchange, щоб оцінити відповідь Джеремі вище, а також додати кілька рядків JS, які я використовував для експорту списку вкладок (оскільки копіювання курсором не ідеально!)
Як сказав Джеремі, виберіть Remote devices
під значком More tools
Devtools Chrome ⋮
(у верхній правій частині панелі):
- налаштувати налагодження USB на телефоні (під
Settings
⇒ Developer options
, root не потрібно)
- зауважте, що ви повинні ввімкнути
Developer options
меню, воно за замовчуванням приховане для захисту користувачів
- на моєму телефоні для цього потрібно кілька разів натискати номер збірки під
Settings
⇒About Device
- як тільки це буде зроблено, підключіть свій USB-модуль і дозвольте з'єднання MTP
- коли панель віддалених пристроїв Chrome devtools відкрита, телефон запитає дозволити налагодження USB
- ви можете завжди довіряти комп’ютеру
Тепер пристрій підключено,
- відкрийте другий перегляд devtools на поданні devtools, з якого ви вибрали,
Remote devices
щоб мати змогу отримати список вкладок за допомогою JavaScript
- зауважте, що ви повинні мати програми devtools у спливаючому режимі (використовуйте символ вертикального еліпсиса у верхньому правому куті панелі), щоб мати змогу отримати це, інакше Command + Option + J (MAC)
Ctrl
+ Shift
+ J
(WINDOWS) просто закриється перша панель для розробників.
- розгорніть список з перших кількох елементів на всі вкладки, натиснувши "Показати більше"
- для скриптування списку використовуйте наступні рядки коду [введені в консолі 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)