Rumah > pembangunan bahagian belakang > Golang > chromedp Bagaimana untuk memilih kawasan teks tertentu daripada berbilang kawasan teks dengan nama dinamik

chromedp Bagaimana untuk memilih kawasan teks tertentu daripada berbilang kawasan teks dengan nama dinamik

WBOY
Lepaskan: 2024-02-05 22:42:12
ke hadapan
628 orang telah melayarinya

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

Kandungan soalan

Saya mempunyai halaman dengan berbilang kawasan teks yang terdiri daripada nama dinamik dan kelas yang sama. Ini bermakna saya tidak boleh memilihnya mengikut id, nama, kelas atau jenis.

Apa yang saya tahu ialah daripada 5 textarea, saya perlukan yang pertama, dan saya mahu menukar nilai textarea itu.

Bolehkah sesiapa memberitahu saya bagaimana untuk melakukan ini menggunakan chromedp? Telah mencuba selama dua hari tanpa kemajuan.

Cari jawapannya:

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


Jawapan betul


Gunakan pseudo-class:first-child a> atau :nth-child untuk memilih elemen sasaran. Contohnya:

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)
    }
}
Salin selepas log masuk

Atas ialah kandungan terperinci chromedp Bagaimana untuk memilih kawasan teks tertentu daripada berbilang kawasan teks dengan nama dinamik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan