我在网上看到从groovy运行一个简单的python文件的方法是:
def cmdArray2 = ["python", "/Users/test/temp/hello.py"]
def cmd2 = cmdArray2.execute()
cmd2.waitForOrKill(1000)
log.info cmd2.text
如果hello.py包含 - 打印“Hello”。它似乎工作正常
但是当我尝试运行包含以下Selenium代码的.py文件时,没有任何反应。
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.keys import Keys
import time
driver = webdriver.PhantomJS(executable_path=r'C:\phantomjs\bin\phantomjs.exe')
driver.get("http://www.google.com") # Load page
# 1 & 2
title = driver.title
print title, len(title)
driver.quit()
任何帮助将不胜感激。 仅供参考 - 我尝试使用所有浏览器,包括无头浏览器,但没有运气。
此外,我能够从命令行运行selenium脚本。但是,当我从SOAPUI运行时,我没有错误,脚本运行,我在日志中看不到任何内容
答案 0 :(得分:1)
您很可能没有看到python脚本中的任何错误,因为它们被打印到stderr而不是stdout(正如您在调用cmd2.text时所预期的那样)。尝试使用这个groovy脚本来检查来自python脚本stderr的错误消息
def cmdArray2 = ["python", "/Users/test/temp/hello.py"]
def process = new ProcessBuilder(cmdArray2).redirectErrorStream(true).start()
process.inputStream.eachLine {
log.warn(it)
}
process.waitFor()
return process.exitValue()
您可能想要尝试的另一件事是直接从groovy使用selenium而不调用外部python脚本。