我有此代码:
def Transalted_Content(content):
driver= webdriver.Chrome("H:\\CI\\chromedriver.exe")
driver.get('https://translate.shell.com/')
translate_from = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "textarea.form-control#translateText")))
translate_from._parent.execute_script("""
var elm = arguments[0], text = arguments[1];
if (!('value' in elm))
throw new Error('Expected an <input> or <textarea>');
elm.focus();
elm.value = text;
elm.dispatchEvent(new Event('change'));
""", translate_from, content)
driver.find_element_by_css_selector("input#translate").click()
time.sleep(3.5)
translated_text_element= driver.find_element_by_id('translatedText')
translated_text=translated_text_element.get_attribute('value')
driver.close()
return translated_text
有时候chrome超时了,所以有一种方法我可以单独编写一个while循环作为一个函数,并在每次调用此函数时并行运行它,以便它可以执行:
driver.refresh()
并且可以每隔一个时间间隔(如果超过一个时间间隔)继续执行此操作吗?
答案 0 :(得分:0)
您可以使用threading
模块与另一个函数并行运行
import threading
def my_threaded_function():
sleep(0.5)
thread = threading.Thread(target=my_threaded_function)
thread.start()
可以通过使用args
参数或通过使用lambda表达式来包装函数来将参数传递给您的函数。
thread = threading.Thread(target=my_threaded_function, args=['arg1', 'arg2'])
或
thread = threading.Thread(target=lambda: my_threaded_function('arg1', 'arg2'))