这是关于selenium自动化testing。 我有一个Jenkins作业安装程序,用于一些testing执行.Jenkins安装在没有GUI(仅限CLI)的Ubuntu机器上。 所以当我运行这些脚本的时候,似乎显然无法findweb浏览器 。
这个工作在windows中工作得很好 。 在Windows中,我得到这样的结果。
窗口成功的结果
------------------------------------------------------- TESTS ------------------------------------------------------- Running TestSuite 06/08/2015 00:04:47,996 INFO [main] (BasicTestObject.java:251) - ======BEGIN Test workflow============ 06/08/2015 00:04:48,002 INFO [main] (BasicTestObject.java:252) - BEGIN Test: MlpBvt 06/08/2015 00:04:48,002 INFO [main] (BasicTestObject.java:253) - ======BEGIN Test workflow============ 06/08/2015 00:04:58,862 DEBUG [main] (DefaultUIDriver.java:300) - Opened url: http://mlpdemo.qaprod.ecollege.com/ 06/08/2015 00:04:58,912 INFO [main] (BasicTestObject.java:296) - -------------BEGIN Test Method------------------- 06/08/2015 00:04:58,913 INFO [main] (BasicTestObject.java:297) - BEGIN Test Method: verifyAdminLogin 06/08/2015 00:04:58,913 INFO [main] (BasicTestObject.java:298) - -------------BEGIN Test Method------------------- 06/08/2015 00:04:58,969 DEBUG [main] (DefaultUIElement.java:980) - Waiting 60000ms for element to be displayed [Locator = {By.xpath: //input[@id='clientname']}] 06/08/2015 00:04:59,058 DEBUG [main] (DefaultUIElement.java:538) - Element is displayed [Locator = {By.xpath: //input[@id='clientname']}] 06/08/2015 00:04:59,059 DEBUG [main] (DefaultUIElement.java:992) - After 89ms, element is displayed [Locator = {By.xpath: //input[@id='clientname']}]
在Linux上,我得到这样的
------------------------------------------------------- TESTS ------------------------------------------------------- Running TestSuite 06/08/2015 00:18:46,834 INFO [main] (BasicTestObject.java:251) - ======BEGIN Test workflow============ 06/08/2015 00:18:46,839 INFO [main] (BasicTestObject.java:252) - BEGIN Test: MlpBvt 06/08/2015 00:18:46,839 INFO [main] (BasicTestObject.java:253) - ======BEGIN Test workflow============ 06/08/2015 00:18:46,998 DEBUG [main] (CapturePageOnFailureListener.java:186) - CapturePageOnFailure found 2 parameters 06/08/2015 00:18:47,002 WARN [main] (DebugUIDriver.java:311) - Called quit() on debugDriver containing null uiDriver 06/08/2015 00:18:47,025 INFO [main] (BasicTestObject.java:304) - -------------END Test Method------------------- 06/08/2015 00:18:47,026 INFO [main] (BasicTestObject.java:305) - END Test Method: verifyAdminLogin 06/08/2015 00:18:47,026 INFO [main] (BasicTestObject.java:306) - -------------END Test Method------------------- 06/08/2015 00:18:47,031 INFO [main] (BasicTestObject.java:304) - -------------END Test Method------------------- 06/08/2015 00:18:47,032 INFO [main] (BasicTestObject.java:305) - END Test Method: VerifyProfessorLogin 06/08/2015 00:18:47,032 INFO [main] (BasicTestObject.java:306) - -------------END Test Method------------------- 06/08/2015 00:18:47,036 INFO [main] (BasicTestObject.java:304) - -------------END Test Method------------------- 06/08/2015 00:18:47,036 INFO [main] (BasicTestObject.java:305) - END Test Method: VerifyStudentLogin 06/08/2015 00:18:47,037 INFO [main] (BasicTestObject.java:306) - -------------END Test Method------------------- 06/08/2015 00:18:47,038 INFO [main] (BasicTestObject.java:283) - ======END Test workflow============ 06/08/2015 00:18:47,038 INFO [main] (BasicTestObject.java:284) - END Test: MlpBvt 06/08/2015 00:18:47,040 INFO [main] (BasicTestObject.java:285) - ======END Test workflow============ 06/08/2015 00:18:47,100 DEBUG [main] (ProcessTool.java:36) - Getting current tool for LINUX 06/08/2015 00:18:47,100 WARN [main] (ProcessTool.java:40) - Could not find ProcessTool for LINUX 06/08/2015 00:18:47,101 WARN [main] (ProcessTool.java:88) - There was no ProcessTool for LINUX 06/08/2015 00:18:47,101 DEBUG [main] (ProcessTool.java:115) - process count for There was no ProcessTool for LINUX:1 Tests run: 12, Failures: 1, Errors: 0, Skipped: 11, Time elapsed: 1.976 sec <<< FAILURE! Results : Failed tests:
它被提及为
06/08/2015 00:18:47,002 WARN [main] (DebugUIDriver.java:311) - Called quit() on debugDriver containing null uiDriver
请提供一些关于这个问题的技术专业。 我可以在linux上运行这个工作吗? 请帮我一下
那么对于unix系统,您必须使用Xvfb在无头模式下运行测试,对于jenkins,您可以使用xvfb插件
简单的例子,如何在无头模式下打开Firefox
from xvfbwrapper import Xvfb from selenium import webdriver xf = Xvfb() # xf = Xvfb(1920, 1080) - will create virtual display with 1920x1080 size xf.start() # browser won't appear driver = webdriver.Firefox() driver.get("http://google.com")