整合營銷服務商

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

          免費咨詢熱線:

          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腳本來完成一些不便操作的元素。


          主站蜘蛛池模板: 国产丝袜美女一区二区三区| 日韩AV在线不卡一区二区三区| 亚洲高清日韩精品第一区| 无码av中文一区二区三区桃花岛 | 亚洲av无码天堂一区二区三区| 久久久一区二区三区| 中日韩一区二区三区| 美女视频一区二区| 国产精品一区二区久久乐下载| 伊人久久精品一区二区三区| 人妻无码一区二区不卡无码av| 又硬又粗又大一区二区三区视频| 国产精品亚洲不卡一区二区三区 | 日本一区二区在线| 日韩制服国产精品一区| 亚洲av高清在线观看一区二区| 一区二区三区免费高清视频| 无码人妻一区二区三区免费视频| 国产日韩精品一区二区在线观看| 在线一区二区观看| 国产成人高清亚洲一区久久| 国产suv精品一区二区6| 精彩视频一区二区| 国产综合一区二区在线观看| 国产午夜精品一区二区| 国产欧美色一区二区三区| 老湿机一区午夜精品免费福利| 国产精品538一区二区在线| 国产丝袜一区二区三区在线观看| 日本一区二区三区在线看| 国产一区中文字幕| 中文字幕日本精品一区二区三区| 精品亚洲综合在线第一区| 久久久久人妻精品一区| 亚洲欧洲专线一区| 一区二区三区在线播放| 日本成人一区二区| 加勒比无码一区二区三区| 日韩在线一区二区三区免费视频| 精品国产一区二区三区2021| 久久精品亚洲一区二区|