当前位置: 首页 > 面试题库 >

Selenium为array(list)中的每个项目创建多个chrome线程并同时执行功能

匡晟
2023-03-14
问题内容

我正在尝试为列表中的每个项目创建多个chrome线程,并同时为列表中的每个项目执行功能,但是不知道从哪里开始任何帮助将不胜感激。

代码

import sys

def spotify(elem1, elem2, elem3):

    print("proxy: {}, cc: {}, cvc: {}".format(elem1, elem2, elem3))


def get_cc():
    cc = ['5136154545452522', '51365445452823', '51361265424522']
    return cc

def get_cvc():
    cvc = ['734', '690', '734']
    return cvc

def get_proxies():
    proxies = ['51.77.545.171:8080', '51.77.254.171:8080', '51.77.258.82:8080']
    return proxies

proxArr = get_proxies()
ccArr = get_cc()
cvcArr = get_cvc()
yeslist = ['y','yes']

for elem in zip(proxArr, ccArr, cvcArr):
    spotify(elem[0], elem[1], elem[2])
    restart=input("Do you wish to start again: ").lower()
    if restart not in yeslist:
        sys.exit("Exiting")

问题答案:

与这里的答案类似,您可以启动多个Chrome浏览器线程。

  • execute_chrome在这种情况下,定义一个执行Selenium代码的函数
  • 将所有必需的参数添加到函数定义
  • 将参数作为元组传递给您的Thread调用,例如args=(elem, )
  • 用与另一个Python包不同的名称保存脚本,例如 my_selenium_tests.py
  • 最好从命令行而不是从交互式环境(例如Jupyter笔记本)运行脚本

    from selenium import webdriver
    

    import threading
    import random
    import time

    number_of_threads = 4

    def execute_chrome(url):
    chrome = webdriver.Chrome()
    chrome.get(url)
    time.sleep(1 + random.random() * 5)
    driver.quit()

    urls = ('https://www.google.com’,
    'https://www.bing.com’,
    'https://www.duckduckgo.com’,
    'https://www.yahoo.com’)

    threads = []
    for i in range(number_of_threads):
    t = threading.Thread(target=execute_chrome, args=(urls[i], ))
    t.start()
    threads.append(t)

    for thread in threads:
    thread.join()



 类似资料:
  • 我正在使用Python和tkinter创建一个游戏,当我试图添加一些音乐时,制作音乐的函数停止了脚本的其余部分(还有窗口)。所以我需要创建一个新的线程来播放音频并保持窗口工作... 我尝试了一些错误、不运行或停止窗口的事情,目前我有: 重要的细节:playSound函数什么也不返回,所以什么都不需要等待它。我也不太懂用Python编程,我更喜欢用Luau。

  • 问题内容: 因此,我的目标是让函数启动自己的线程,以便可以并行运行,而不必等待上一个线程完成。问题在于,它似乎不是多线程的(意味着一个线程在另一个线程开始之前就完成了)。 我也有该函数的内部,但似乎启动的线程的标识与从其运行python脚本的主线程相同。我认为我的方法不正确。 问题答案: 这是常见错误,容易出错。 只需在主线程中一次执行您的函数,然后将(我想为您函数的返回值)作为函数传递给线程,这

  • 问题内容: 我试图在Python中同时运行两个函数。我已经尝试使用下面的代码,但是当我执行代码时,第二个函数仅在第一个函数完成后才启动。 问题答案: 您做得正确。:) 尝试运行以下愚蠢的代码: 您将看到它先打印“ start func1”,然后再“ start func2”,然后(很长一段时间)后,您将最终看到函数结束。但是它们确实会同时执行。 由于进程需要一段时间才能启动,因此您甚至可能 在 “

  • 我需要执行一些任务。有些任务是独立的,有些任务依赖于其他任务的成功执行。独立任务可以并行运行以获得更好的性能。我把这些任务称为服务。列说明哪些服务将以串联方式执行,哪些服务将以并联方式执行。列描述了一组定义的服务所遵循的执行顺序。例如,服务A和B应该并行运行。如果它们已成功执行,则将执行服务C。请注意,服务C并不直接依赖于其先前服务的输出,但它必须在成功执行其先前服务后运行,因为服务C在执行期间需