Ho appena aderito a StackExchange per mostrare un po 'di apprezzamento per la risposta di Jeremy sopra e aggiungere anche le poche righe di JS che ho usato per esportare l'elenco di schede (dal momento che copiare con il cursore non è l'ideale!)
Come ha detto Jeremy, seleziona Remote devices
sotto More tools
l' ⋮
icona di Chrome devtools (in alto a destra nel pannello):
- configurare il debug USB sul telefono (sotto
Settings
⇒ Developer options
, root non richiesto)
- si noti che è necessario abilitare il
Developer options
menu, è nascosto per impostazione predefinita per proteggere gli utenti
- sul mio telefono è necessario toccare più volte il numero di build sotto
Settings
⇒About Device
- una volta fatto, collega la tua USB e consenti la connessione MTP
- quando il pannello dei dispositivi remoti di Chrome è aperto, il telefono richiederà quindi di consentire il debug USB
- puoi scegliere di fidarti sempre del computer
Ora il dispositivo è collegato,
- apri una seconda vista devtools nella vista devtools dalla quale hai selezionato
Remote devices
per poter recuperare l'elenco delle schede usando JavaScript
- nota che devi avere devtools in modalità pop-out (usa il simbolo di ellissi verticali in alto a destra nel pannello) per essere in grado di farlo, altrimenti Command + Option + J (MAC)
Ctrl
+ Shift
+ J
(WINDOWS) si chiuderà il primo pannello di devtools.
- espandi l'elenco dai primi pochi elementi a tutte le schede facendo clic su "Mostra altro"
- per eseguire lo script sull'elenco, utilizzare le seguenti poche righe di codice [immesse nella console della seconda finestra di devtools]
- NB
/deep/
è il selettore CSS per inserire #shadow-root
elementi DOM
Per esportare un elenco di tutti gli URL aperti su Chrome per Android, ho scelto di creare l'elenco in una stringa di testo formattata per il markdown e copiarlo negli Appunti
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)
Avrai quindi un elenco negli appunti simile a questo:
[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)
...
Aggiornare
Per qualche motivo ricevo un errore qualche volta , dicendo che non è riuscito a ottenere l' href
attributo di un null
oggetto (quando lo ispeziono è un nodo invisibile, chissà). Per aggirare questo, utilizzare invece questa versione:
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)