【问题标题】:How to run two selenium python program at same time如何同时运行两个 selenium python 程序
【发布时间】:2020-12-28 14:29:31
【问题描述】:

我想同时运行代码两次以节省时间。我是一个初学者,我正在对此进行一些研究,并获得了多线程这个词并听说了 pytest 库,但我不知道该怎么做,甚至我找不到示例代码。 请帮我!我在等你的答复

import selenium
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from shutil import which
import time
import pandas as pd
from selenium.webdriver.common.keys import Keys
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
Links = []
chrome_path = which('chromedriver')
driver = webdriver.Chrome(executable_path=chrome_path)
driver.maximize_window()

driver.get('https://www.google.com')

text = driver.find_element_by_xpath('//input[@class="gLFyf gsfi"]')
text.send_keys('Hello')

driver.find_element_by_xpath('//div[@class="FPdoLc tfB0Bf"]//input[1]').click()
time.sleep(3)

driver.close()

我想同时跑两次?谁来帮帮我

【问题讨论】:

标签: java python selenium selenium-webdriver


【解决方案1】:

将整个 selenium 代码重构为一个接受 webdriver 实例作为输入的类/方法(这不是强制性的,只是利益分离)。

然后根据需要多少线程运行该方法。

这是一个基于您的代码的示例,还添加了从每个线程获取结果的代码。

import time

import concurrent.futures
from selenium import webdriver


def task(driver):
    driver.get('https://www.google.com')
    text = driver.find_element_by_xpath('//input[@class="gLFyf gsfi"]')
    text.send_keys('Hello')
    driver.find_element_by_xpath('//div[@class="FPdoLc tfB0Bf"]//input[1]').click()
    time.sleep(3)
    driver.close()


if __name__ == '__main__':
    futures = []
    with concurrent.futures.ThreadPoolExecutor(max_workers=3) as executor:
        for i in range(3):
            driver = webdriver.Chrome(executable_path="./chromedriver")
            driver.maximize_window()
            futures.append(executor.submit(task, driver))
    for future in futures:
        print(future.result())

【讨论】:

    【解决方案2】:

    您始终可以使用“Jupyter Notebooks”,然后您可以使用新名称另存为脚本并同时运行它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-20
      • 1970-01-01
      • 2018-06-02
      • 2021-07-20
      • 2011-03-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多