Właśnie dołączyłem do StackExchange, aby wyrazić uznanie dla odpowiedzi Jeremy'ego powyżej, a także dodać kilka wierszy JS, których użyłem do wyeksportowania listy zakładek (ponieważ kopiowanie kursorem nie jest idealne!)
Jak powiedział Jeremy, wybrać Remote devices
pod More tools
Chrome DevTools ⋮
ikonę (w prawym górnym rogu panelu):
- skonfiguruj debugowanie USB w telefonie (poniżej
Settings
⇒ Developer options
, root nie jest wymagany)
- pamiętaj, że musisz włączyć
Developer options
menu, domyślnie jest ukryte, aby chronić użytkowników
- na moim telefonie wymagało to wielokrotnego stuknięcia w numer kompilacji pod
Settings
⇒About Device
- po wykonaniu tej czynności podłącz USB i zezwól na połączenie MTP
- gdy panel zdalnych urządzeń devtools Chrome jest otwarty, telefon poprosi o zezwolenie na debugowanie USB
- możesz zdecydować się zawsze ufać komputerowi
Teraz urządzenie jest podłączone,
- otwórz drugi widok devtools w widoku devtools, z którego wybrałeś,
Remote devices
aby móc pobrać listę zakładek za pomocą JavaScript
- zwróć uwagę, że musisz mieć devtoole w trybie wyskakującym (użyj pionowego symbolu elipsy w prawym górnym rogu panelu), aby móc to podnieść, w przeciwnym razie Command + Opcja + J (MAC)
Ctrl
+ Shift
+ J
(WINDOWS) po prostu zamknie się pierwszy panel devtools.
- rozwiń listę z pierwszych kilku elementów do wszystkich kart, klikając „Pokaż więcej”
- aby wykonać skrypt na liście, użyj następujących kilku wierszy kodu [wprowadzonych w konsoli drugiego okna devtools]
- NB
/deep/
to selektor CSS do wprowadzania #shadow-root
elementów DOM
Aby wyeksportować listę wszystkich adresów URL otwartych w Chrome na Androida, postanowiłem po prostu przekształcić listę w ciąg tekstowy sformatowany metodą przeceny i skopiować ją do schowka
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)
W schowku pojawi się lista wyglądająca następująco:
[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)
...
Aktualizacja
Z jakiegoś powodu czasamihref
pojawia się błąd , mówiąc, że nie udało mu się uzyskać atrybutu null
elementu (kiedy go sprawdzam, jest to niewidzialny węzeł, który wie). Aby obejść ten problem, użyj tej wersji:
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)