php小編草莓,你好!關於你提到的問題,chromedp click 在你的 golang 程式碼中無法運作的情況,我可以幫你找出問題所在。 chromedp 是一個使用 Chrome DevTools Protocol 進行自動化的函式庫,click 方法用於模擬滑鼠點擊事件。可能的問題有:1. 頁面元素不可見或被其他元素遮擋,導致click 失效;2. click 方法的參數傳遞有誤;3. chromedp 的版本與Chrome 瀏覽器版本不相容;4. 其他程式碼邏輯問題。請提供更多細節,我將盡快給出解決方案。
問題內容
我正在使用 chromedp 開發 scrapper。
要獲得我想要的內容(頁面 html),我必須點擊特定按鈕。
所以我使用了 chromedp.click 和 chromedp.outerhtml,但我只得到了點擊前頁面的 html,而不是點擊完成後頁面的 html。
你能看到我的程式碼並建議我如何修復它嗎?
func runCrawler(URL string, lineNum string, stationNm string) { // settings for crawling opts := append(chromedp.DefaultExecAllocatorOptions[:], chromedp.Flag("headless", false)) // create chrome instance contextVar, cancelFunc := chromedp.NewExecAllocator(context.Background(), opts...) defer cancelFunc() contextVar, cancelFunc = chromedp.NewContext(contextVar) defer cancelFunc() var htmlContent string err := chromedp.Run(contextVar, chromedp.Navigate(URL), chromedp.WaitVisible(".end_footer_area"), chromedp.Click(".end_section.station_info_section > div.at_end.sofzqce > div > div.c10jv2ep.wrap_btn_schedule.schedule_time > button"), chromedp.OuterHTML("html", &htmlContent, chromedp.ByQuery), ) fmt.Println("html", htmlContent) checkErr(err)
我還給你主頁和我需要點擊的按鈕
頁面網址:https://pts.map.naver.com/end-subway/ends/web/11321/home
我需要點擊的按鈕區域:
非常感謝
解決方法
您想要取得的頁面已在新分頁(目標)中開啟。
在這種情況下,我們可以使用 chromedp.waitnewtarget 來建立一個 chan,從中我們可以接收新選項卡的目標 id。然後使用 chromedp.withtargetid 選項建立一個新上下文,以便我們可以連接到新選項卡。從這裡開始,一切都是您已經熟悉的。
package main import ( "context" "fmt" "strings" "github.com/chromedp/cdproto/target" "github.com/chromedp/chromedp" ) func main() { opts := append(chromedp.DefaultExecAllocatorOptions[:], chromedp.Flag("headless", false), ) ctx, cancel := chromedp.NewExecAllocator(context.Background(), opts...) defer cancel() ctx, cancel = chromedp.NewContext(ctx) defer cancel() var htmlContent string ch := chromedp.WaitNewTarget(ctx, func(i *target.Info) bool { return strings.Contains(i.URL, "/timetable/web/") }) err := chromedp.Run(ctx, chromedp.Navigate("https://pts.map.naver.com/end-subway/ends/web/11321/home"), chromedp.WaitVisible(".end_footer_area"), chromedp.Click(".end_section.station_info_section > div.at_end.sofzqce > div > div.c10jv2ep.wrap_btn_schedule.schedule_time > button"), ) if err != nil { panic(err) } newCtx, cancel := chromedp.NewContext(ctx, chromedp.WithTargetID(<-ch)) defer cancel() if err := chromedp.Run(newCtx, chromedp.WaitReady(".table_schedule", chromedp.ByQuery), chromedp.OuterHTML("html", &htmlContent, chromedp.ByQuery), ); err != nil { panic(err) } fmt.Println("html", htmlContent) }
以上是chromedp click 在我的 golang 程式碼中不起作用。你能找出問題所在嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

HTML是一种用于构建网页的标记语言,而Vue是一种用于构建用户界面的JavaScript框架。在HTML中使用Vue可以提供更加灵活和动态的用户界面功能。本文将介绍如何将HTML代码转换为Vue,并提供具体的代码示例。首先,我们需要在项目中引入Vue框架。可以通过CDN直接引入,或者使用包管理工具如npm或yarn进行安装。在HTML中,我们常见的标签如&

vue如何使用sort排序,需要具体代码示例Vue.js是一款流行的前端框架,它提供了很多便捷的方法和指令来处理数据。其中一个常见的需求是对数组进行排序操作,Vue.js的sort方法就能很好地满足这个需求。本文将介绍如何使用Vue.js的sort方法来对数组进行排序,并提供具体的代码示例。首先,我们需要创建一个Vue实例,并在其data选项中定义一个数组

我正在使用chromedp开发scrapper。要获得我想要的内容(页面html),我必须单击特定按钮。所以我使用了chromedp.click和chromedp.outerhtml,但我只得到了点击前页面的html,而不是点击完成后页面的html。你能看到我的代码并建议我如何修复它吗?funcrunCrawler(URLstring,lineNumstring,stationNmstring){//settingsforcraw

Java中swt是什么,需要具体代码示例swt全称为StandardWidgetToolkit,是一种基于本地操作系统的图形化用户界面(GUI)库,适用于Java语言。相比于Swing,swt更接近操作系统本地控件的外观和行为,能够提供更加原生和高效的用户界面交互体验。在Java开发中,我们可以使用swt来构建丰富、交互性强的应用程序界面。swt凭借其与

实现css禁止点击事件的方法有使用CSS的pointer-events属性和使用JavaScript禁用点击事件。详细介绍:1、CSS的pointer-events属性可以控制元素是否可以触发鼠标事件。默认情况下,pointer-events属性的值为auto,即元素可以触发鼠标事件。要禁止点击事件,可以将pointer-events属性的值设置为none等等。

PyQt5安装步骤详解:从下载到配置一气呵成!Python是一种强大而广泛使用的编程语言,为了开发图形界面程序,我们可以使用PyQt5库。PyQt5是一个用于创建GUI应用程序的Python绑定库,它可以让我们使用Python语言和Qt框架的特性来开发跨平台的图形界面应用程序。本文将详细介绍如何安装PyQt5以及配置的步骤,并提供相应的代码示例。第一步:下载

javascript:void(0)是什么意思?解决这个问题的方法有哪些?当我们在浏览网页时,有时会遇到一些链接点击后并没有任何响应,而在浏览器的地址栏中却显示为"javascript:void(0)"的情况。这个问题可能会让一些网页访问者感到困惑,因为他们不知道这个字面上看起来像是JavaScript代码的错误信息到底是什么意思。那么,让我们来一起解开这个

我正在做一项家庭作业,我需要在窗格中创建一个圆圈并使用屏幕底部的按钮移动它。我能够让圆圈和按钮出现在窗格中,但是当我按下按钮时,圆圈不会移动。我的主要方法如下:importjavafx.application.application;importjavafx.event.actionevent;importjavafx.event.eventhandler;importjavafx.geometry.insets;importjavafx.geometry.pos;importj


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

禪工作室 13.0.1
強大的PHP整合開發環境

Atom編輯器mac版下載
最受歡迎的的開源編輯器

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

Dreamweaver Mac版
視覺化網頁開發工具