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
一個支持無障礙服務的Android平臺上的JavaScript IDE,其發展目標是JsBox(是一個可以用來運行 JavaScript 腳本的 iOS 應用,可以執行標準的 JavaScript 腳本)和Workflow。同時有VS Code 插件可提供基礎的在桌面開發的功能。
Auto.js具有如下特點:
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。
返回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
執行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()
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()的返回值是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腳本來完成一些不便操作的元素。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。