第一种方法:
按照建议
WebDriverWait
帮助解决了问题
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.common.exceptions import TimeoutException
我用过例如
text_box = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH,"the_actual_X_path")))
或
copy_button = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH,
"the_actual_X_path")))
第二种方法(我用这个没有报警告了):
你可以在webdriver初始化中使用参数 keep_alive=False,这是因为selenium使用connectionPool管理连接,如果keep_alive为True,它只使用webdriver实例中唯一的connectionPool,所以当多线程操作默认设置的单个connectionPool时maxSize 1,线程1获取连接1,线程2无法获取连接并创建新连接,当它们的请求结束并将连接放回到池中时,发生错误,这两个连接将被放入1大小的池中,你可以看到详细信息在来自 urllib3 和 selenium 的 ConnectionPool.py 中
之前是这样的:
self.driver = webdriver.Chrome() 添加参数: self.driver = webdriver.Chrome(keep_alive=False) 运行不会报警告了 标签:webdriver,driver,selenium,Connection,WebDriverWait,import,多线程,pool From: https://www.cnblogs.com/xingyaowuhen/p/17868064.html