整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          HTML 腳本

          avaScript 使 HTML 頁面具有更強的動態和交互性。

          在線實例

          插入一段腳本

          如何將腳本插入 HTML 文檔。

          使用 <noscript> 標簽

          如何應對不支持腳本或禁用腳本的瀏覽器。

          HTML <script> 標簽

          <script> 標簽用于定義客戶端腳本,比如 JavaScript。

          <script> 元素既可包含腳本語句,也可通過 src 屬性指向外部腳本文件。

          JavaScript 最常用于圖片操作、表單驗證以及內容動態更新。

          下面的腳本會向瀏覽器輸出"Hello World!":

          實例

          <script>document.write("Hello World!");</script>

          Tip: 學習更多關于Javascript教程,請查看JavaScript 教程!

          HTML<noscript> 標簽

          <noscript> 標簽提供無法使用腳本時的替代內容,比方在瀏覽器禁用腳本時,或瀏覽器不支持客戶端腳本時。

          <noscript>元素可包含普通 HTML 頁面的 body 元素中能夠找到的所有元素。

          只有在瀏覽器不支持腳本或者禁用腳本時,才會顯示 <noscript> 元素中的內容:

          實例

          <script>document.write("Hello World!")</script><noscript>抱歉,你的瀏覽器不支持 JavaScript!</noscript>

          JavaScript體驗(來自本站javascript教程)

          JavaScript實例代碼:

          JavaScript可以直接在HTML輸出:

          document.write("<p>這是一個段落。</p>");

          JavaScript事件響應:

          <buttontype="button"onclick="myFunction()">點我!</button>

          JavaScript處理 HTML 樣式:

          document.getElementById("demo").style.color="#ff0000";

          HTML 腳本標簽

          標簽描述
          <script>定義了客戶端腳本
          <noscript>定義了不支持腳本瀏覽器輸出的文本

          如您還有不明白的可以在下面與我留言或是與我探討QQ群308855039,我們一起飛!

          近在逛github時發現一個不錯的安卓開源項目,支持用javascript編寫自動化腳本,可以模擬人工點擊、滑動等一系列操作。


          auto.js

          Auto.js 簡介

          一個支持無障礙服務的Android平臺上的JavaScript IDE,其發展目標是JsBox(是一個可以用來運行 JavaScript 腳本的 iOS 應用,可以執行標準的 JavaScript 腳本)和Workflow。同時有VS Code 插件可提供基礎的在桌面開發的功能。

          Auto.js具有如下特點:

          1. 支持免root和root運行,支持懸浮窗錄制和運行
          2. 提供對屏幕上的控件的尋找、遍歷、獲取信息、操作等API。類似于Google的UI測試框架UiAutomator,可以把它當做移動版UI測試框架使用
          3. 支持使用Root權限以提供更強大的屏幕點擊、滑動、錄制功能和運行shell命令。錄制錄制可產生js文件或二進制文件,錄制動作的回放比較流暢
          4. 提供截取屏幕、保存截圖、圖片找色、找圖等函數

          與按鍵精靈等軟件的區別

          Auto.js與按鍵精靈大多數功能類似,但是其社區和市場沒有按鍵精靈強大,畢竟開源軟件在商業化這塊不是強項。

          與按鍵精靈等軟件的區別:

          1. Auto.js主要以自動化、工作流為目標;
          2. Auto.js兼容性更好。以坐標為基礎的按鍵精靈、腳本精靈很容易出現分辨率問題,而以控件為基礎的Auto.js則沒有這個問題;
          3. Auto.js執行大部分任務不需要root權限。只有需要精確坐標點擊、滑動的相關函數才需要root權限;
          4. Auto.js可以提供界面編寫等功能,不僅僅是作為一個腳本軟件而存在。

          應用場景

          如游戲加點,自動閱讀等,你可以想得到的都可以通過JS腳本自己來編寫業務邏輯,是不是很方便。另外如最近很多的雙11活動可以領券領幣等,文末附Auto.js以及相關腳本github地址

          Auto.js App代碼地址

          github.com/hyb1996/Auto.js

          雙11活動領幣腳本

          github.com/hyue418/taobao-11-11


          我們在進行web自動化時,經常遇到一些不好操作的元素,普通的元素定位和操作容易報錯,如果我們使用的selenium的話,就可以使用selenium調用js腳本進行操作。在playwright 中也有類似的方法,使用page.evaluate()執行JavaScript腳本。 page.evaluate()和page.evaluate_handle()之間的唯一區別是page.evaluate_handle()返回JSHandle。

          • page.evaluate() 返回調用執行的結果
          • page.evaluate_handle()返回JSHandle

          page.evaluate()

          返回evaluate() 返回執行JavaScript腳本的結果,使用示例如下:

          pythonfrom playwright.sync_api import sync_playwright
          
          def run_js_script():
              with sync_playwright() as playwright:
                  browser = playwright.chromium.launch(headless=False)
                  context = browser.new_context()
                  page = context.new_page()
                  page.goto('https://www.baidu.com')
          
                  print(page.evaluate("1 + 2"))
          
                  # 關閉瀏覽器
                  context.close()
                  browser.close()
          
          run_js_script()
          

          也可以執行一個函數,如下:

          pythonfrom playwright.sync_api import sync_playwright
          
          def run_js_script():
              with sync_playwright() as playwright:
                  browser = playwright.chromium.launch(headless=False)
                  context = browser.new_context()
                  page = context.new_page()
                  page.goto('https://www.baidu.com')
          
                  print(page.evaluate("() => '拜仁慕尼黑'"))
          
                  # 關閉瀏覽器
                  context.close()
                  browser.close()
          
          run_js_script()
          

          注:如果傳遞給page.evaluate()的函數返回一個不可序列化的值,則page.evaluate()解析為undefined

          示例

          1. 打印網頁標題

          執行document.title 獲取頁面的title,代碼如下:

          pythonfrom playwright.sync_api import sync_playwright
          
          def run_js_script():
              with sync_playwright() as playwright:
                  browser = playwright.chromium.launch(headless=False)
                  context = browser.new_context()
                  page = context.new_page()
                  page.goto("https://www.baidu.com/")
                  title = page.evaluate('document.title')
                  print(title)
                  page.pause()
                  # 關閉瀏覽器
                  context.close()
                  browser.close()
          
          run_js_script()
          
          1. 操作元素示例
          pythonfrom playwright.sync_api import sync_playwright
          
          def run_js_script():
              with sync_playwright() as playwright:
                  browser = playwright.chromium.launch(headless=False)
                  context = browser.new_context()
                  page = context.new_page()
                  page.goto("https://www.baidu.com/")
                  js = """
                      document.getElementById('kw').value='playwright';
                      document.getElementById('su').click();
                      """
                  page.evaluate(js)
                  page.pause()
                  # 關閉瀏覽器
                  context.close()
                  browser.close()
          
          run_js_script()
          

          頁面如下:

          page.evaluate_handle()

          page.evaluate_handle()的返回值是JSHandle。

          pythonfrom playwright.sync_api import sync_playwright
          
          def run_js_script():
              with sync_playwright() as playwright:
                  browser = playwright.chromium.launch(headless=False)
                  context = browser.new_context()
                  page = context.new_page()
                  page.goto("https://www.baidu.com/")
                  a_handle = page.evaluate_handle("document.body")
                  result_handle = page.evaluate_handle("body => body.innerHTML", a_handle)
                  print(result_handle.json_value())
                  result_handle.dispose()
                  page.pause()
                  # 關閉瀏覽器
                  context.close()
                  browser.close()
          
          run_js_script()
          

          總結

          本文主要介紹了playwright執行js腳本的操作,與selenium一樣,playwright同樣可以執行js腳本來完成一些不便操作的元素。


          主站蜘蛛池模板: 精品视频一区二区三区四区 | 无码一区二区三区爆白浆| 内射女校花一区二区三区| 中文字幕日韩一区二区不卡| 国产色综合一区二区三区| 一区二区国产在线观看| 国产亚洲综合一区二区三区| 99热门精品一区二区三区无码| 国产成人精品一区二区三区无码| 免费观看日本污污ww网站一区| 亚洲精品国产suv一区88| 精品动漫一区二区无遮挡| 久久精品无码一区二区无码| 无码一区二区三区免费| 亚洲中文字幕无码一区| 高清国产精品人妻一区二区| 久久99国产一区二区三区| 一区二区手机视频| 国产日韩高清一区二区三区| 色一乱一伦一区一直爽| 精品乱人伦一区二区| 免费视频精品一区二区| 国产高清在线精品一区二区三区 | 高清一区二区三区免费视频| 日韩精品人妻一区二区中文八零 | 中文字幕色AV一区二区三区 | 欧洲精品免费一区二区三区| 在线播放精品一区二区啪视频| 女女同性一区二区三区四区| 国产成人高清亚洲一区久久| 日韩社区一区二区三区| 亚洲高清成人一区二区三区| 人妻少妇精品一区二区三区| 亚洲色婷婷一区二区三区| 人妻体体内射精一区二区| 无码福利一区二区三区| 免费一区二区三区四区五区| 少妇人妻偷人精品一区二区| 亚洲午夜一区二区电影院| 国产精品成人一区无码| 久久国产精品免费一区|