李威159 2022-05-06 09:33 采纳率: 44.4%
浏览 234
已结题

python selenium 多开浏览器能够同步做一样的动作吗

在使用selenium多开浏览器(同chrome多个),
但每个网页加载的时间尽不相同
所以操作下一步时每个开始的时间不一样
我想问能不能让前面做完某步的浏览器等全部浏览器跑完再一起进行下一步
ex: 第一个网页点完按钮,等待2,3...n个浏览器都点完按钮在执行点下一个按钮的动作。
我的代码示例如下

from datetime import datetime
from selenium import webdriver
import threading
from multiprocessing import Queue
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options

def selenium_mult():
    chrome_options = Options()
    chrome_options.add_argument("--headless") 
    ser=Service('./chromedriver')
    driver = webdriver.Chrome(service = ser,options=chrome_options)
    driver.set_window_size(540,480)
    driver.get('https:/website') 

    WebDriverWait(driver,10,1).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="btn"]/div/div[3]/button[1]'))) 
    driver.find_element(By.XPATH, '//*[@id="btn"]/div/div[3]/button[1]').click()  #click button 1
    Ftime = datetime.now()

    WebDriverWait(driver,30,1).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="btn"]/div/div[2]/div[1]/div[6]/div'))) 
    driver.find_element(By.XPATH, '//*[@id="btn"]/div/div[2]/div[1]/div[6]/div').click() #click button 2

if __name__ == '__main__':
    for i in range(5):
        t = threading.Thread(target=selenium_mult)
        t.start()
    


  • 写回答

1条回答 默认 最新

      报告相同问题?

      相关推荐 更多相似问题

      问题事件

      • 系统已结题 7月30日
      • 已采纳回答 7月22日
      • 创建了问题 5月6日

      悬赏问题

      • ¥20 python跨服务器实现复制 ,剪切的功能需求
      • ¥15 R语言,单因素cox检验,时间分层后,使用coz.zph()函数再次ph假设检验时报错,如何解决?
      • ¥15 关于#C语言冒泡排序型#的问题,如何解决?
      • ¥15 如何预处理存在负值的样本数据,使其能够全都成为正的
      • ¥15 SW画图拖影,平滑处理如何关闭
      • ¥15 请问怎么通过css改变图片颜色
      • ¥15 Blender: auto rig pro骨骼动画导出后变形穿模
      • ¥15 C51单片机的设计思路哈
      • ¥15 Linux脏牛提权漏洞
      • ¥15 为何我用uni-data-checkbox 标签在APP里调试无法显示?