mirror of
https://gitee.com/g1879/DrissionPage.git
synced 2024-12-10 04:00:23 +08:00
修复iframe内元素link参数不正确问题
This commit is contained in:
parent
d7ec617988
commit
5ff303130d
@ -128,10 +128,10 @@ def offset_scroll(ele, offset_x, offset_y):
|
|||||||
return cx, cy
|
return cx, cy
|
||||||
|
|
||||||
|
|
||||||
def make_absolute_link(link, page=None):
|
def make_absolute_link(link, baseURI=None):
|
||||||
"""获取绝对url
|
"""获取绝对url
|
||||||
:param link: 超链接
|
:param link: 超链接
|
||||||
:param page: 页面对象
|
:param baseURI: 页面或iframe的url
|
||||||
:return: 绝对链接
|
:return: 绝对链接
|
||||||
"""
|
"""
|
||||||
if not link:
|
if not link:
|
||||||
@ -142,11 +142,11 @@ def make_absolute_link(link, page=None):
|
|||||||
|
|
||||||
# 是相对路径,与页面url拼接并返回
|
# 是相对路径,与页面url拼接并返回
|
||||||
if not parsed['netloc']:
|
if not parsed['netloc']:
|
||||||
return urljoin(page.url, link) if page else link
|
return urljoin(baseURI, link) if baseURI else link
|
||||||
|
|
||||||
# 是绝对路径但缺少协议,从页面url获取协议并修复
|
# 是绝对路径但缺少协议,从页面url获取协议并修复
|
||||||
if not parsed['scheme'] and page:
|
if not parsed['scheme'] and baseURI:
|
||||||
parsed['scheme'] = urlparse(page.url).scheme
|
parsed['scheme'] = urlparse(baseURI).scheme
|
||||||
parsed = tuple(v for v in parsed.values())
|
parsed = tuple(v for v in parsed.values())
|
||||||
return urlunparse(parsed)
|
return urlunparse(parsed)
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ def location_in_viewport(page: ChromiumBase, loc_x: float, loc_y: float) -> bool
|
|||||||
def offset_scroll(ele: ChromiumElement, offset_x: float, offset_y: float) -> tuple: ...
|
def offset_scroll(ele: ChromiumElement, offset_x: float, offset_y: float) -> tuple: ...
|
||||||
|
|
||||||
|
|
||||||
def make_absolute_link(link: str, page: BasePage = None) -> str: ...
|
def make_absolute_link(link: str, baseURI: str = None) -> str: ...
|
||||||
|
|
||||||
|
|
||||||
def is_js_func(func: str) -> bool: ...
|
def is_js_func(func: str) -> bool: ...
|
||||||
|
@ -324,10 +324,10 @@ class ChromiumElement(DrissionElement):
|
|||||||
if not link or link.lower().startswith(('javascript:', 'mailto:')):
|
if not link or link.lower().startswith(('javascript:', 'mailto:')):
|
||||||
return link
|
return link
|
||||||
else:
|
else:
|
||||||
return make_absolute_link(link, self.page)
|
return make_absolute_link(link, self.prop('baseURI'))
|
||||||
|
|
||||||
elif attr == 'src':
|
elif attr == 'src':
|
||||||
return make_absolute_link(attrs.get('src', None), self.page)
|
return make_absolute_link(attrs.get('src', None), self.prop('baseURI'))
|
||||||
|
|
||||||
elif attr == 'text':
|
elif attr == 'text':
|
||||||
return self.text
|
return self.text
|
||||||
|
Loading…
x
Reference in New Issue
Block a user