!31 在页面加载任何脚本前执行js

Merge pull request !31 from 又阳月/dev
This commit is contained in:
g1879 2023-12-30 15:06:06 +00:00 committed by Gitee
commit 28544e2532
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
2 changed files with 15 additions and 1 deletions

View File

@ -492,7 +492,7 @@ class ChromiumBase(BasePage):
:return: None
"""
run_js(self, script, as_expr, 0, args)
def get(self, url, show_errmsg=False, retry=None, interval=None, timeout=None):
"""访问url
:param url: 目标url

View File

@ -10,6 +10,7 @@ from requests.structures import CaseInsensitiveDict
from .cookies_setter import SessionCookiesSetter, CookiesSetter
from .._functions.tools import show_or_hide_browser
__ERROR__ = 'error'
class BasePageSetter(object):
def __init__(self, page):
@ -198,6 +199,19 @@ class TabSetter(ChromiumBaseSetter):
"""使标签页处于最前面"""
self._page.browser.activate_tab(self._page.tab_id)
def add_init_script(self, script: str, raise_error=True):
'''添加初始化脚本,在页面加载任何脚本前执行
:param script: js文本
:return: identifier 添加的脚本的标识符失败时返回False或raise Error
'''
result = self.driver.run('Page.addScriptToEvaluateOnNewDocument', source=script)
if not result or __ERROR__ not in result:
return result['identifier']
else:
if raise_error:
raise_error(str(result))
return False
class ChromiumPageSetter(TabSetter):