mirror of
https://gitee.com/g1879/DrissionPage.git
synced 2024-12-10 04:00:23 +08:00
close_other_tabs()现在可以保留多个tab
This commit is contained in:
parent
e5e7c57b32
commit
0a5315b93a
@ -115,7 +115,7 @@ class DriverPage(object):
|
|||||||
def ele(self,
|
def ele(self,
|
||||||
loc_or_ele: Union[Tuple[str, str], str, DriverElement, WebElement],
|
loc_or_ele: Union[Tuple[str, str], str, DriverElement, WebElement],
|
||||||
mode: str = None,
|
mode: str = None,
|
||||||
timeout: float = None) -> Union[DriverElement, List[DriverElement or str], str, None]:
|
timeout: float = None) -> Union[DriverElement, List[DriverElement], str, None]:
|
||||||
"""返回页面中符合条件的元素,默认返回第一个 \n
|
"""返回页面中符合条件的元素,默认返回第一个 \n
|
||||||
示例: \n
|
示例: \n
|
||||||
- 接收到元素对象时: \n
|
- 接收到元素对象时: \n
|
||||||
@ -176,7 +176,7 @@ class DriverPage(object):
|
|||||||
|
|
||||||
def eles(self,
|
def eles(self,
|
||||||
loc_or_str: Union[Tuple[str, str], str],
|
loc_or_str: Union[Tuple[str, str], str],
|
||||||
timeout: float = None) -> List[DriverElement or str]:
|
timeout: float = None) -> List[DriverElement]:
|
||||||
"""返回页面中所有符合条件的元素 \n
|
"""返回页面中所有符合条件的元素 \n
|
||||||
示例: \n
|
示例: \n
|
||||||
- 用loc元组查找: \n
|
- 用loc元组查找: \n
|
||||||
@ -335,33 +335,35 @@ class DriverPage(object):
|
|||||||
if self.tabs_count:
|
if self.tabs_count:
|
||||||
self.to_tab(0)
|
self.to_tab(0)
|
||||||
|
|
||||||
def close_other_tabs(self, num_or_handle: Union[int, str] = None) -> None:
|
def close_other_tabs(self, num_or_handles: Union[int, str, list, tuple] = None) -> None:
|
||||||
"""关闭传入的标签页以外标签页,默认保留当前页 \n
|
"""关闭传入的标签页以外标签页,默认保留当前页。可传入列表或元组 \n
|
||||||
:param num_or_handle: 要保留的标签页序号或handle,序号第一个为0,最后为-1
|
:param num_or_handles: 要保留的标签页序号或handle,可传入handle组成的列表或元组
|
||||||
:return: None
|
:return: None
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
tab = int(num_or_handle)
|
tab = int(num_or_handles)
|
||||||
except (ValueError, TypeError):
|
except (ValueError, TypeError):
|
||||||
tab = num_or_handle
|
tab = num_or_handles
|
||||||
|
|
||||||
tabs = self.driver.window_handles
|
tabs = self.driver.window_handles
|
||||||
|
|
||||||
if tab is None:
|
if tab is None:
|
||||||
page_handle = self.current_tab_handle
|
page_handle = (self.current_tab_handle,)
|
||||||
elif isinstance(tab, int):
|
elif isinstance(tab, int):
|
||||||
page_handle = tabs[tab]
|
page_handle = (tabs[tab],)
|
||||||
elif isinstance(tab, str):
|
elif isinstance(tab, str):
|
||||||
|
page_handle = (tab,)
|
||||||
|
elif isinstance(tab, (list, tuple)):
|
||||||
page_handle = tab
|
page_handle = tab
|
||||||
else:
|
else:
|
||||||
raise TypeError('Argument num_or_handle can only be int or str.')
|
raise TypeError('Argument num_or_handle can only be int, str, list or tuple.')
|
||||||
|
|
||||||
for i in tabs: # 遍历所有标签页,关闭非保留的
|
for i in tabs: # 遍历所有标签页,关闭非保留的
|
||||||
if i != page_handle:
|
if i not in page_handle:
|
||||||
self.driver.switch_to.window(i)
|
self.driver.switch_to.window(i)
|
||||||
self.driver.close()
|
self.driver.close()
|
||||||
|
|
||||||
self.driver.switch_to.window(page_handle) # 把权柄定位回保留的页面
|
self.driver.switch_to.window(page_handle[0]) # 把权柄定位回保留的页面
|
||||||
|
|
||||||
def to_tab(self, num_or_handle: Union[int, str] = 0) -> None:
|
def to_tab(self, num_or_handle: Union[int, str] = 0) -> None:
|
||||||
"""跳转到标签页 \n
|
"""跳转到标签页 \n
|
||||||
|
Loading…
x
Reference in New Issue
Block a user