当我需要单击在新选项卡中打开的项目,并且需要将浏览器切换到该选项卡时,我有以下代码
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秒。如果到那时它还没有完成,那么杀死线程并执行替代策略
您可能会发现^{} 模块很有用^{} 可以完成“等待最多10秒”部分;除了让线程正常工作的通常困难之外,把这一点放在一起应该不会太难
相关问题 更多 >
编程相关推荐