整合營銷服務商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          Drissionpage實戰(zhàn),自動登錄后新彈出瀏覽器窗口的處理

          天繼續(xù)使用Drissionpage框架來實現(xiàn)內(nèi)部系統(tǒng)的網(wǎng)頁自動化處理,編碼過程中碰到2個新問題,記錄一下解決方法:

          自動登錄后新彈出瀏覽器窗口的獲取

          自動輸入賬號和密碼登錄的代碼非常簡單,如下所示:

          from DrissionPage import WebPage,ChromiumOptions
          
          co=ChromiumOptions()
          page=WebPage(chromium_options=co)
          page.set.window.max()
          page.get("http://xxx:8080")
          # 輸入賬號密碼,自動登錄
          page.ele("#userName").input("zhangsan")
          page.ele("#userPwd").input("123456")
          page.ele(".formsubmit").click()
          # 點擊待辦任務圖標
          page.ele("#daiban").ele("tag:img").click()

          但是在系統(tǒng)首頁面點擊待辦任務圖標時,一直報錯:無法定位元素。根據(jù)瀏覽器開發(fā)者工具元素定位確認沒有問題,調(diào)試跟蹤發(fā)現(xiàn)點擊待辦任務圖標時page對象中的html竟然是登錄界面的腳本,才發(fā)現(xiàn)系統(tǒng)首頁在新彈出的一個瀏覽器窗口中。

          經(jīng)過多次嘗試,發(fā)現(xiàn)Drissionpage獲取新彈出瀏覽器頁面page的一種簡便操作,直接get頁面的url即可。修改代碼如下:

          # 點擊待辦任務圖標
          page.get("http://xxx:8080/sword?ctrl=Mh001LoginCtrl_openWin")
          page.ele("#daiban").ele("tag:img").click()

          具有多個類的網(wǎng)頁元素的獲取

          另外,在處理具有多個類的網(wǎng)頁元素時,精確匹配類名查找會定位不到,如以下類名:

          class="sGrid_data_row_div  sGrid_data_row_div_dan   "

          調(diào)試跟蹤中發(fā)現(xiàn),類名中間的空格發(fā)生變化導致,查找Drissionpage官網(wǎng)說明,有模糊匹配的方法,則可以輕松搞定。

          items=page.eles('.:sGrid_data_row_div')

          使用過程中感覺Drissionpage定位網(wǎng)頁元素的方法齊全,寫法簡練。

          擊右上方紅色按鈕關注“小鄭搞碼事”,每天都能學到知識,搞懂一個問題!

          大家好!我是/小鄭搞碼事/的小鄭

          今天和大家分享一下JS如何操作瀏覽器窗口。只講如何打開一個新窗口

          先來看效果圖

          上面這個圖界面效果就是我們要實現(xiàn)的。

          我們常常需要創(chuàng)建一個新窗口,用來向用戶顯示額外的信息,同時又避免他們正在閱讀的信息消失。從實現(xiàn)方案上來看,盡管我們可以用HTML打開一個新的瀏覽器窗口,但是使用JavaScript可以對新窗口的內(nèi)容和特性進行更多的控制。

          接下來,我們看一下怎么實現(xiàn)的

          一、定義窗口打開函數(shù)

          定義一個打開新窗口的函數(shù)newWindow。如上面代碼所示,變量catWindow包含一個新的窗口對象,這個對象引用圖像文件icon.png,這個新窗口的名稱是catWin,必須設置名稱,因為我們以后可能希望在a或另一個腳本中引用這個窗口。新窗口的寬度是350像素,高度是260像素,位置是左邊400,上邊400。

          二、寫一個調(diào)用函數(shù)

          頁面中,包含一個onload事件處理程序,它調(diào)用newWinLinks函數(shù),newWinLinks循環(huán)遍歷頁面上的a,檢查是否有任何a包含class屬性值newWin。如果有,就設置這個a元素的onclick事件處理程序,從而,當點擊這個a時,調(diào)用newWindow函數(shù)。

          總結一下

          需要注意兩個地方:

          1、newWindow中,在寬度和高度參數(shù)中的逗號之間不能有任何空格,如果有空格,那么腳本可能在某些瀏覽器中無效,總地來說,當腳本出現(xiàn)錯誤,需要進行高度時,要首先查找這樣的小問題。

          2、比如向窗口中添加參數(shù)時,希望窗口具有工具欄,地址欄,滾動條

          toolbar=yes,location=yes,scrollbars=yes
          

          參數(shù)默認是no,可以不填。當然瀏覽器上表現(xiàn)也有不同,需要知道。

          何網(wǎng)頁中彈出選項自動選擇,比如在看一個視頻,看完后會彈出一個小窗口,需要點擊小窗口中的一個選項才能繼續(xù)播放下一個視頻,自動化完成這個動作而不需要手動點擊


          為了實現(xiàn)這個功能,可以使用 JavaScript 和瀏覽器的開發(fā)者工具。這里是一個簡單的步驟,可以幫助實現(xiàn)自動點擊網(wǎng)頁上的選項。

          1. 打開需要自動化點擊的網(wǎng)頁。
          2. 打開瀏覽器的開發(fā)者工具。在大多數(shù)瀏覽器中,可以按 F12 鍵或者右鍵單擊頁面并選擇“檢查元素”。
          3. 切換到“Elements”(元素)選項卡,找到彈出窗口中需要自動點擊的選項的 HTML 代碼。通常,它會是一個 <button>、<a> 或 <input> 元素。可能需要等待彈出窗口出現(xiàn)后才能找到相關元素。
          4. 選中該元素,并右鍵單擊,選擇“Copy”(復制)> “Copy selector”(復制選擇器)。這將生成一個 CSS 選擇器,用于定位該元素。
          5. 切換到“Console”(控制臺)選項卡,然后輸入以下代碼:

          javascript

          function autoClick() {
            const selector = 'PASTE_YOUR_CSS_SELECTOR_HERE';
            const button = document.querySelector(selector);
            if (button) {
              button.click();
            }
          }
          
          const interval = 5000; // 檢查并嘗試點擊的時間間隔(毫秒)
          setInterval(autoClick, interval);
          

          將 PASTE_YOUR_CSS_SELECTOR_HERE 替換為剛剛復制的 CSS 選擇器。可以根據(jù)需要調(diào)整 interval 變量的值。

          1. 按回車鍵運行代碼。這將每隔一段時間(由 interval 變量確定)嘗試自動點擊彈出窗口中的選項。

          請注意,這種方法并不適用于所有網(wǎng)站,因為有些網(wǎng)站可能使用了復雜的結構或防止自動化操作的措施。在這種情況下,可能需要使用更高級的自動化工具,例如 Selenium WebDriver 或 Puppeteer。


          主站蜘蛛池模板: 成人无号精品一区二区三区| 国产成人一区二区三区| 最新中文字幕一区二区乱码 | 午夜视频一区二区| 大伊香蕉精品一区视频在线| 无码精品一区二区三区| 一区二区三区在线|欧| 亚洲日韩精品一区二区三区| 精品国产一区二区三区2021| 怡红院美国分院一区二区 | 国产丝袜视频一区二区三区| 夜夜爽一区二区三区精品| 国产精品亚洲专一区二区三区| 亚洲av乱码一区二区三区香蕉| 日本一区二区在线播放| 日韩免费视频一区二区| 国产精品亚洲一区二区三区在线| 国产亚洲福利精品一区二区| 国产精品无码一区二区三区毛片| 中文字幕乱码人妻一区二区三区| 精品国产AV一区二区三区| 亚洲av日韩综合一区在线观看| 亚洲日韩精品一区二区三区 | 本免费AV无码专区一区| 国产乱码精品一区二区三| 无码AⅤ精品一区二区三区| 无码精品久久一区二区三区| 一区二区三区免费精品视频| 久久一区二区三区99| 最美女人体内射精一区二区| 久久久国产精品亚洲一区| 亚洲综合在线一区二区三区| 日本免费一区二区三区最新vr| 国产第一区二区三区在线观看| 色综合视频一区二区三区| 精品少妇一区二区三区在线| 无码人妻精品一区二区在线视频 | 99久久无码一区人妻a黑| 亚洲色一区二区三区四区| 日韩一区二区三区不卡视频| 久久se精品一区精品二区国产|