python 停止 selenium 独立服务器

1 投票
1 回答
1982 浏览
提问于 2025-04-16 22:34

我想知道怎么停止 selenium-server-standalone。启动它的方法我知道,就是用 java -jar selenium-server-standalone.jar 这个命令。但是,怎么才能把它停掉呢?另外,有没有简单的方法可以用 Python 来写个脚本,方便我在运行测试时启动和停止它。我觉得这应该很简单,但我找不到答案。

1 个回答

3

你可以用 subprocess.Popen 来启动服务器,然后用 sel.shut_down_selenium_server() 来关闭它:

import selenium
import socket
import subprocess
import shlex
import sys
import time

# CHANGE path='/path/to/selenium-server.jar' AS NEEDED:
def start_server(path='/path/to/selenium-server.jar'):
    null=open('/dev/null')
    proc=subprocess.Popen(shlex.split('java -jar {p}'.format(p=path)),
                          stdout=null,stderr=null)
    return proc

def shutdown_server(sel):
    sel.shut_down_selenium_server()

def start_selenium(host="localhost",
                   port=4444,
                   browserStartCommand="*firefox",
                   browserURL="http://www.google.com/webhp"):
    sel=selenium.selenium(host,port,browserStartCommand,browserURL)
    try:
        sel.start()
    except socket.error as err:
        proc=start_server()
        time.sleep(1)
        try:
            sel.start()
        except socket.error as err:
            sys.exit(err)
    return sel

if __name__=='__main__':
    sel=start_selenium()
    time.sleep(1)
    sel.stop()
    shutdown_server(sel)    

撰写回答