Add is_link method to webelem
This commit is contained in:
parent
6c3f29d570
commit
e07a1045a8
@ -306,6 +306,11 @@ class AbstractWebElement(collections.abc.MutableMapping):
|
|||||||
qtutils.ensure_valid(url)
|
qtutils.ensure_valid(url)
|
||||||
return url
|
return url
|
||||||
|
|
||||||
|
def is_link(self):
|
||||||
|
"""Return True if this AbstractWebElement is a link."""
|
||||||
|
href_tags = ['a', 'area', 'link']
|
||||||
|
return self.tag_name() in href_tags
|
||||||
|
|
||||||
def _mouse_pos(self):
|
def _mouse_pos(self):
|
||||||
"""Get the position to click/hover."""
|
"""Get the position to click/hover."""
|
||||||
# Click the center of the largest square fitting into the top/left
|
# Click the center of the largest square fitting into the top/left
|
||||||
@ -403,9 +408,8 @@ class AbstractWebElement(collections.abc.MutableMapping):
|
|||||||
self._click_fake_event(click_target)
|
self._click_fake_event(click_target)
|
||||||
return
|
return
|
||||||
|
|
||||||
href_tags = ['a', 'area', 'link']
|
|
||||||
if click_target == usertypes.ClickTarget.normal:
|
if click_target == usertypes.ClickTarget.normal:
|
||||||
if self.tag_name() in href_tags:
|
if self.is_link():
|
||||||
log.webelem.debug("Clicking via JS click()")
|
log.webelem.debug("Clicking via JS click()")
|
||||||
self._click_js(click_target)
|
self._click_js(click_target)
|
||||||
elif self.is_editable(strict=True):
|
elif self.is_editable(strict=True):
|
||||||
@ -418,7 +422,7 @@ class AbstractWebElement(collections.abc.MutableMapping):
|
|||||||
elif click_target in [usertypes.ClickTarget.tab,
|
elif click_target in [usertypes.ClickTarget.tab,
|
||||||
usertypes.ClickTarget.tab_bg,
|
usertypes.ClickTarget.tab_bg,
|
||||||
usertypes.ClickTarget.window]:
|
usertypes.ClickTarget.window]:
|
||||||
if self.tag_name() in href_tags:
|
if self.is_link():
|
||||||
self._click_href(click_target)
|
self._click_href(click_target)
|
||||||
else:
|
else:
|
||||||
self._click_fake_event(click_target)
|
self._click_fake_event(click_target)
|
||||||
|
@ -285,8 +285,7 @@ class WebKitElement(webelem.AbstractWebElement):
|
|||||||
for _ in range(5):
|
for _ in range(5):
|
||||||
if elem is None:
|
if elem is None:
|
||||||
break
|
break
|
||||||
tag = elem.tag_name()
|
if elem.is_link():
|
||||||
if tag == 'a' or tag == 'area':
|
|
||||||
if elem.get('target', None) == '_blank':
|
if elem.get('target', None) == '_blank':
|
||||||
elem['target'] = '_top'
|
elem['target'] = '_top'
|
||||||
break
|
break
|
||||||
|
Loading…
Reference in New Issue
Block a user