美文网首页
Selenium+Python多线程

Selenium+Python多线程

作者: 小仙女本人呀 | 来源:发表于2018-09-06 23:22 被阅读0次

Python通过两个标准库thread和threading提供对线程的支持。
我们应避免使用thread模块,原因是它不支持线程守护(即当主线程退出时,所有的子线程不管它们还在工作与否,都会被强行退出)。

from threading import Thread
from selenium import webdriver
from time import sleep, ctime

#测试用例
def test_baidu(host, browser):
    print('start: %s' % ctime())
    print(host, browser)

    #当前运行环境
    desired_capabilities = {'browserName': browser}
    driver = webdriver.Remote(command_executor = host, 
                            desired_capabilities = desired_capabilities)
    driver.get('https://www.baidu.com')
    driver.find_element_by_id('kw').send_keys(browser)
    sleep(3)
    driver.close()


if __name__ == '__main__':

    #定义分布式运行环境
    env = {'http://localhost:4444/wd/hub': 'chrome',
                'http://localhost:5555/wd/hub': 'firefox'}#,
                #'http://<remote_ip>:6666/wd/hub': 'internet explorer'}

    #定义空线程数组
    threads = []

    #获取线程数
    loops = range(len(env))

    #创建线程,并追加入线程数组
    for host, browser in env.items():
        thread = Thread(target=test_baidu, args=(host, browser))
        threads.append(thread)

    #启动线程
    for i in loops:
        threads[i].start()

    #守护线程
    for i in loops:
        threads[i].join()

    print('end: %s' % ctime)

相关文章

网友评论

      本文标题:Selenium+Python多线程

      本文链接:https://www.haomeiwen.com/subject/ektqgftx.html