python 停止 selenium 独立服务器

标签 python selenium

我如何停止selenium-server-standalone。我知道你可以通过 java -jar selenium-server-standalone.jar 启动它,但是你会如何停止它呢?另外,有没有一种简单的方法可以在 python 中编写脚本来在运行测试时启动和停止它。我觉得这非常简单。但我无法找到我的问题的答案。

最佳答案

您可以使用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)    

关于python 停止 selenium 独立服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6881500/

相关文章:

python - 调用函数时参数发生了什么变化?

python - 计算 Pandas 分组对象中的唯一值

java - 替代 String.join 来连接

Selenium 启动旧的 chromedriver 版本

java - 看不懂FluentWait中until()方法的实现

python - 如何删除 tf.logging.info 打印出的前缀

python - 在哪里可以了解如何在 python3 中处理音频 IO 和编解码器?

python - 如何将以天、小时、分钟和秒为单位的时间转换为仅以秒为单位

python - 通过xpath查找元素并点击它

python 脚本无法调用 azure 上的 chrome 驱动程序