打开新标签时如何对浏览器进行计时



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

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

您可以剥离一个打开窗口的线程,然后等待最多 10 秒。如果到那时还没有完成,请终止线程并执行您的替代策略。

您可能会发现threading模块很有用。thread.join(10)可以做"最多等待10秒"的部分;除了让线程工作的通常困难之外,将它们放在一起应该不会难。

相关内容

  • 没有找到相关文章

最新更新