【问题标题】:run parallel Selenium controlled windows in python在 python 中运行并行的 Selenium 控制窗口
【发布时间】:2018-09-15 13:30:49
【问题描述】:

我可以使用 selenium 和 python 运行多个 chrome 窗口,但是窗口一个接一个地运行,一个窗口完成其任务,然后移动到下一个窗口,但我希望它并行运行,就像多个窗口应该同时打开一样时间和所有点击应该以并行方式执行,假设步骤是打开 Facebook,登录,点赞帖子这三个步骤应该在所有 chrome 窗口中同时完成,如果 30 个窗口打开,那么 30 个窗口应该在同时执行操作。

这是我用来运行一个 chrome 窗口的代码:

browser=webdriver.Chrome('C:/chromedriver.exe')
browser.get("facebook.com")
input = browser.find_element_by_xpath('//input[@type="email"]')
time.sleep(1)
input.click()

请告诉我我可以在 python 中使用什么来并行执行任务

【问题讨论】:

    标签: python-3.x multithreading selenium


    【解决方案1】:

    尝试使用Threading library:

    import threading
    
    def event():
        browser=webdriver.Chrome('C:/chromedriver.exe')
        browser.get("facebook.com")
        input = browser.find_element_by_xpath('//input[@type="email"]')
        time.sleep(1)
        input.click()
        browser.quit()
    
    threads = []
    for _ in range(30):
        thread = threading.Thread(target=event)
        threads.append(thread)
        thread.start()
    
    for thread in threads:
        thread.join()
    

    此代码应该允许并行执行相同的操作 30 次

    附:如果您正在寻找网站性能测试,您可以尝试The Grinder tool

    【讨论】:

    • 感谢您的回答,我可以传递带有一些参数的函数事件吗,例如我想为事件提供参数为 event(Name,Email,Phone)
    • 是的。将其定义为def event(Name,Email,Phone),然后调用为thread = threading.Thread(target=event, args=(Name,Email,Phone,) )
    猜你喜欢
    • 2016-10-24
    • 1970-01-01
    • 1970-01-01
    • 2016-07-11
    • 2015-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多