当需要单击在新选项卡中打开的项目时,我具有以下代码,并且需要将浏览器切换到该选项卡。
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
答案 0 :(得分:0)
您可以剥离一个线程来打开窗口,然后等待最多10秒钟。如果尚未完成,请终止线程并执行替代策略。
您可能会发现threading
模块很有用。 thread.join(10)
可以执行“最长等待10秒”部分;除了使线程正常工作的困难之外, 也不难。