Acabo de unirme a este StackExchange para mostrar algo de aprecio por la respuesta de Jeremy anterior, y también agregar las pocas líneas de JS que usé para exportar la lista de pestañas (¡ya que copiar con el cursor no es lo ideal!)
Como dijo Jeremy, seleccione Remote devices
debajo More tools
en el ⋮
icono de Devtools de Chrome (arriba a la derecha del panel):
- configurar la depuración de USB en su teléfono (bajo
Settings
⇒ Developer options
, no se requiere root)
- tenga en cuenta que debe habilitar el
Developer options
menú, está oculto de forma predeterminada para proteger a los usuarios
- en mi teléfono esto requería tocar varias veces el número de compilación en
Settings
⇒About Device
- Una vez hecho esto, conecte su USB y permita la conexión MTP
- cuando el panel del dispositivo remoto Chrome Devtools está abierto, el teléfono solicitará permitir la depuración de USB
- puedes optar por confiar siempre en la computadora
Ahora el dispositivo está conectado,
- abra una segunda vista de devtools en la vista de devtools de la que seleccionó
Remote devices
para poder recuperar la lista de pestañas usando JavaScript
- tenga en cuenta que debe tener herramientas de desarrollo en modo emergente (use el símbolo de puntos suspensivos verticales en la parte superior derecha del panel) para poder obtener esto, de lo contrario, Comando + Opción + J (MAC)
Ctrl
+ Shift
+ J
(VENTANAS) simplemente se cerrará El primer panel de devtools.
- expanda la lista de los primeros elementos a todas las pestañas haciendo clic en "Mostrar más"
- para escribir en la lista, use las siguientes líneas de código [ingresadas en la consola de la segunda ventana de devtools]
- NB
/deep/
es el selector CSS para ingresar #shadow-root
elementos DOM
Para exportar una lista de todas las URL abiertas en Chrome para Android, elegí hacer la lista en una cadena de texto con formato de descuento y copiarla al portapapeles
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)
Luego tendrá una lista en su portapapeles que se verá así:
[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)
...
Actualizar
Por alguna razón, recibo un error algunas veces , diciendo que no pudo obtener el href
atributo de un null
elemento (cuando lo inspecciono es un nodo invisible, quién sabe). Para evitar esto, use esta versión en su lugar:
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)