chromedp So wählen Sie einen bestimmten Textbereich aus mehreren Textbereichen mit dynamischen Namen aus

WBOY
Freigeben: 2024-02-05 22:42:12
nach vorne
613 Leute haben es durchsucht

chromedp 如何从多个具有动态名称的文本区域中选择特定文本区域

Frageninhalt

Ich habe eine Seite mit mehreren Textbereichen, die aus dynamischen Namen und derselben Klasse bestehen. Das bedeutet, dass ich sie nicht nach ID, Name, Klasse oder Typ auswählen kann.

Ich weiß nur, dass ich von den fünf Textbereichen den ersten benötige und den Wert dieses Textbereichs ändern möchte.

Kann mir jemand sagen, wie man das mit chromedp macht? Ich habe es zwei Tage lang versucht, ohne Fortschritte.

Finden Sie die Antwort:

const n = document.querySelector('.elementor-repeater-fields:nth-child(2) textarea'); console.log(n);


Richtige Antwort


Pseudoklasse verwenden:first-child a> oder :nth-child, um das Zielelement auszuwählen. Zum Beispiel:

package main

import (
    "context"
    "fmt"
    "net/http"
    "net/http/httptest"
    "time"

    "github.com/chromedp/chromedp"
)

func main() {
    ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprint(w, `
<html>
  <body>
    <textarea></textarea>
    <textarea></textarea>
    <textarea></textarea>
  </body>
</html>
`)
    }))
    defer ts.Close()

    opts := append(chromedp.DefaultExecAllocatorOptions[:],
        chromedp.Flag("headless", false),
    )
    ctx, cancel := chromedp.NewExecAllocator(context.Background(), opts...)
    defer cancel()
    ctx, cancel = chromedp.NewContext(ctx)
    defer cancel()

    err := chromedp.Run(ctx,
        chromedp.Navigate(ts.URL),
        chromedp.Sleep(time.Second),
        chromedp.SetValue(`body>textarea:first-child`, "hello world!", chromedp.ByQuery),
        chromedp.Sleep(time.Second),
        chromedp.SetValue(`body>textarea:nth-child(2)`, "hello chromedp!", chromedp.ByQuery),
        chromedp.Sleep(3*time.Second),
    )
    if err != nil {
        panic(err)
    }
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonchromedp So wählen Sie einen bestimmten Textbereich aus mehreren Textbereichen mit dynamischen Namen aus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!