如何在打开新选项卡时为浏览器计时

2024-10-04 01:34:58 发布

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

当我需要单击在新选项卡中打开的项目,并且需要将浏览器切换到该选项卡时,我有以下代码

def ThingsinTab(browser):

   clickbutton=Somefunction #Find where to click

   clickbutton.click()

   try:  

      WebDriverWait(browser,10).until(
      EC.number_of_windows_to_be(len(old_tabs)+1))
   except: return browser

   THIS POINT!!

   new_window=(set(browser.window_handles)-old_tabs).pop()
   browser.switch_to.window(new_window)

   #Do some stuff with this tab

   browser.close()  
   browser.switch_to_window(main_tab)

   return browser

有时,选项卡会打开,但它仍保持灰色背景,很长一段时间没有完全加载。我已经缩小了代码在这一点上的位置,并在上面的代码中发出了信号。 我想要的是一种对新变量new_window和开关计时的方法,这样,如果10秒后它在代码中没有移动,它就会停止,关闭新选项卡并返回浏览器

如果这个函数是一个更大的代码的一部分,我也想知道如何在这个函数的更大脚本中计时,因此如果它花费的时间超过数秒,它会中断函数的运行并恢复其余的代码

Big script

some things

ThingsinTab() #I want to set a maximum time for this function to complete its code,or else stop it and move on.

More some things

Tags: to函数代码browsernewreturn浏览器some
1条回答
网友
1楼 · 发布于 2024-10-04 01:34:58

您可以释放一个打开窗口的线程,然后最多等待10秒。如果到那时它还没有完成,那么杀死线程并执行替代策略

您可能会发现^{}模块很有用^{}可以完成“等待最多10秒”部分;除了让线程正常工作的通常困难之外,把这一点放在一起应该不会太难

相关问题 更多 >