51Testing软件测试论坛

标题: python selenium 多开浏览器能够同步做一样的动作吗 [打印本页]

作者: 测试积点老人    时间: 2022-5-6 10:16
标题: python selenium 多开浏览器能够同步做一样的动作吗
在使用selenium多开浏览器(同chrome多个),
但每个网页加载的时间尽不相同
所以操作下一步时每个开始的时间不一样
我想问能不能让前面做完某步的浏览器等全部浏览器跑完再一起进行下一步
ex: 第一个网页点完按钮,等待2,3...n个浏览器都点完按钮在执行点下一个按钮的动作。
我的代码示例如下
  1. from datetime import datetime
  2. from selenium import webdriver
  3. import threading
  4. from multiprocessing import Queue
  5. from selenium.webdriver.common.by import By
  6. from selenium.webdriver.support.wait import WebDriverWait
  7. from selenium.webdriver.support import expected_conditions as EC
  8. from selenium.webdriver.common.by import By
  9. from selenium.webdriver.chrome.service import Service
  10. from selenium.webdriver.chrome.options import Options

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

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

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

  23. if __name__ == '__main__':
  24.     for i in range(5):
  25.         t = threading.Thread(target=selenium_mult)
  26.         t.start()
  27.    
复制代码



作者: bellas    时间: 2022-5-7 10:34
应该可以
作者: kallinr    时间: 2022-5-7 11:31
可以试一下
作者: 暗涧幽火    时间: 2022-5-7 11:45
可以的。

如果您认为将其分成两部分将有助于加快速度,那么您可以这样做(进一步拆分技术)。
1) 编写一个函数,将网站的 id 作为参数。
2)编写一个for循环,一次又一次地调用def发送nenxt id。
像这样的东西:

def check(id):
    open("id")

ids=[id1, id2, ...]

for id in ids:
    check(id)
作者: qqq911    时间: 2022-5-7 12:24
可以用多台
作者: jingzizx    时间: 2022-5-7 20:49
等待/判断




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2