等待一组线程中的任何一个完成Python

时间:2018-09-23 03:13:14

标签: python multithreading selenium

我有一个简单的Python / Selenium脚本,必须等待4次检查。这些都在单独的线程上。在返回信息的第一个线程上,程序应继续执行,并杀死其余线程(如果可能)。

我有一个程序可以很好地创建线程,但是我不知道如何继续执行已执行的第一个线程。

这些是我的函数定义:

def wait_by(search_type, locator, timeout):
    WebDriverWait(driver, timeout).until(EC.presence_of_element_located((search_type, locator)))

def multi_locator_verify_element(xpath_locator, css_locator, name_locator, id_locator, timeout):
    element = ""

    if xpath_locator != "":
      tx = Thread(target=wait_by, args=(By.XPATH, xpath_locator, timeout))
       tx.start()
   if css_locator != "":
       tc = Thread(target=wait_by, args=(By.CSS, css_locator, timeout))
       tc.start()
  if name_locator != "":
       tn = Thread(target=wait_by, args=(By.NAME, name_locator, timeout))
       tn.start()
   if id_locator != "":
       ti = Thread(target=wait_by, args=(By.ID, id_locator, timeout))
       ti.start()

multi_locator_verify_element函数应该在第一个线程能够检索到正确的元素之后完成。

有人可以帮我吗?

此致

0 个答案:

没有答案