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
|
||||
|
||||
|
||||
def make_absolute_link(link, page=None):
|
||||
def make_absolute_link(link, baseURI=None):
|
||||
"""获取绝对url
|
||||
:param link: 超链接
|
||||
:param page: 页面对象
|
||||
:param baseURI: 页面或iframe的url
|
||||
:return: 绝对链接
|
||||
"""
|
||||
if not link:
|
||||
@ -142,11 +142,11 @@ def make_absolute_link(link, page=None):
|
||||
|
||||
# 是相对路径,与页面url拼接并返回
|
||||
if not parsed['netloc']:
|
||||
return urljoin(page.url, link) if page else link
|
||||
return urljoin(baseURI, link) if baseURI else link
|
||||
|
||||
# 是绝对路径但缺少协议,从页面url获取协议并修复
|
||||
if not parsed['scheme'] and page:
|
||||
parsed['scheme'] = urlparse(page.url).scheme
|
||||
if not parsed['scheme'] and baseURI:
|
||||
parsed['scheme'] = urlparse(baseURI).scheme
|
||||
parsed = tuple(v for v in parsed.values())
|
||||
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 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: ...
|
||||
|
@ -324,10 +324,10 @@ class ChromiumElement(DrissionElement):
|
||||
if not link or link.lower().startswith(('javascript:', 'mailto:')):
|
||||
return link
|
||||
else:
|
||||
return make_absolute_link(link, self.page)
|
||||
return make_absolute_link(link, self.prop('baseURI'))
|
||||
|
||||
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':
|
||||
return self.text
|
||||
|
Loading…
x
Reference in New Issue
Block a user