インストール:mitmproxyをインストールPIP
新しいスクリプトを作成します。
スクリプトコード:
1 から mitmproxy インポートCTX 2 3 injected_javascript = ''」は 4 //カスタムゲッター使用する`languages`プロパティを上書き 5 Object.defineProperty(ナビゲータ、 "言語"、{ 6 関数(){:GET 7 戻り[" ZHを-CN」、 "ZH"、 "ZH-TW"、 "EN-US"、 "EN"]; 8 } 9 })。 10 //カスタムゲッターを使用するために、 `plugins`プロパティを上書きします。 11 Object.defineProperty(ナビゲータ、 'プラグイン'、{ 12 GET:()=> [1、2、3、4、5]、 13 }); Object.defineProperty(ナビゲーター、 'webdriverを'、{ 16 GET:()=> falseを、 17 }); 18 //クローム試験に合格します。 19は、 我々はテストのために必要があるとして、//私たちは多くの深さでこれを模擬することができます。 20 window.navigator.chrome = { 21 ランタイム:{}、 22 //等 23 }。 24 //は、権限の試験に合格します。 25 CONST originalQuery = window.navigator.permissions.query。 26 window.navigator.permissions.query =(パラメータ)=>( 27 parameters.name === '通知'? 28 Promise.resolve({状態:Notification.permission}): 29 originalQuery(パラメータ) 30 )。 31 ''」 32 33 デフ応答(フロー): 34 #のみHTMLコンテンツの200の応答を処理します。 35は なら ない == 200 flow.response.status_code : 36 リターン 37 38 位JavaScriptを含むスクリプトタグを注入します。 39 HTML = flow.response.text 40 HTML = html.replace(' <HEAD> '、' <HEAD> <スクリプト>%S </スクリプト> '%injected_javascript) 41 = flow.response.text STR(HTML) 42がある ctx.log.info(' 挿入成功' ) 43
そして、実行mitmdump
mitmdump -s xxxx.py
デフォルトは8080で、webdriverをプロキシ127.0.0.1:8080を設定しました
その後、セレンの特性を監視し、変更することができます。