【问题标题】:Subprocess is not running Sikuli with pytest子进程未使用 pytest 运行 Sikuli
【发布时间】:2020-02-26 00:54:34
【问题描述】:

我尝试在 Pytest 中启动 Sikuli 测试。 我的目标是通过单击“确定”来处理 PKCS12 Chrome 警报。

为此,我运行一个调用 Sikuli JAR 的子进程,并将 Sikuli 测试作为参数。
子进程调用在 Python 3.8 中有效,因为它在 Python 空闲时运行良好。
但是在 pytest 进程中,没有任何迹象表明子进程正在做任何事情,并且测试以超时异常结束。

知道我缺少什么吗?

我的背景:

  • Windows 7
  • Python 3.8
  • Pytest 5.2.2
  • Sikuli 2.0.0(与 OpenJDK 9 一起运行)

我的代码:

import subprocess
from selenium import webdriver
import time

def test_webaccess():
    options=webdriver.ChromeOptions()
    options.add_argument('--allow-running-insecure-content')
    options.add_argument('--ignore-certificate-errors')
    driver = webdriver.Chrome(options=options)
    driver.get("https://<my_website_url>/")
    time.sleep(10)
    subprocess.run('java -jar %SIKULI%/sikulix-2.0.0.jar -r <path_to_sikuli_test>/click_ok.py', shell=True, capture_output=True)
    assert "<webiste_title>" in driver.title
    assert "No results found." not in driver.page_source
    driver.close()

【问题讨论】:

    标签: subprocess pytest sikuli


    【解决方案1】:

    我找到了解决办法。

    get 命令正在等待 HTTP 响应。
    因此,子进程永远不会运行。

    为此,您需要使用多重处理

    解决方案代码:

    import subprocess
    from selenium import webdriver
    from multiprocessing import Process
    
    def clik_ok():
        subprocess.run('java -jar %SIKULI%/sikulix-2.0.0.jar -r <path_to_sikuli_test>/click_ok.py', shell=True, capture_output=True)
    
    def test_sdc_webaccess():
        options=webdriver.ChromeOptions()
        options.add_argument('--allow-running-insecure-content')
        options.add_argument('--ignore-certificate-errors')
        driver = webdriver.Chrome(options=options)
        p=Process(target=clik_ok)
        p.start()
        driver.get("<my_website_url>")
        p.join()
        assert "<webiste_title>" in driver.title
        assert "No results found." not in driver.page_source
        driver.close()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-23
      • 2020-02-09
      • 2019-06-06
      • 2019-06-30
      • 1970-01-01
      • 2017-05-31
      • 2019-01-19
      • 1970-01-01
      相关资源
      最近更新 更多