多选项卡控件和重叠(Firefox)Selenium和Python

2024-04-20 07:32:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我的应用程序打开一个带有多个链接的选项卡(主窗口)。然后打开其中一个链接,推送所需信息,关闭选项卡并移动到下一个链接,重复此过程。它适合两种深度的标签。代码如下:

打开/处理选项卡:

  def browsingContent(self,xlink): 

    global mainWindow
    global threadWindow

    def _init_(self,xlink):
        self.xlink      = xlink

    """ Opening link in a new window"""
    try:

            """ The current window is '0' """
            mainWindow = browser.window_handles[0]
            """ Opening browser's tab """
            browser.execute_script('''window.open("''' +xlink+ '''", "_blank");''')

            """ Browser's tab is '1'    """
            threadWindow = browser.window_handles[-1]
            """ Control to browser's tab """
            browser.switch_to.window(threadWindow)
            #threadWindow = browser.switch_to.window(browser.window_handles[-1])


            """ Getting extra time """
            return threadWindow

关闭选项卡:

  def browsingStop(self):

    def _init_(self):
        pass

    browser.close()
    browser.switch_to.window(mainWindow)

正如我之前所说,对于两个级别,它都可以正常工作。新的情况是,我有两个带有链接的选项卡,行为发生了变化

第一个操作进行得很顺利,但在打开第二个链接后,每个新选项卡都会低于前一个选项卡。最终,当我放置新链接时,它们会弹出。只有保持窗口把手的卡舌被正确刮除

我尝试了不同的方法,比如更改窗口句柄和在browsingStop函数中添加一些time.sleep()

有什么想法吗?多谢各位


Tags: toselfbrowserinit链接defwindowglobal