selenium简单示例 - 错误消息:无法杀死进程

时间:2016-10-28 06:10:02

标签: java selenium kill

我是使用selenium java的新手。我浏览了在线教程并运行了一个简单的程序来测试页面是否成功打开。

我不确定为什么会出现这些错误消息。自从我复制&粘贴在线教程中的代码。

请帮助!我不明白出了什么问题..

----程序----

package seleniumPrograms;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.firefox.FirefoxDriver;
public class Gecko_Driver {

    public static void main(String[] args) throws InterruptedException {
        System.setProperty("webdriver.gecko.driver","C:\\Users\\bm-toshiba5\\Softwares\\geckodriver-v0.11.1-win64\\geckodriver.exe");
        WebDriver driver = new FirefoxDriver();
        driver.get("http://www.toolsqa.com");

        Thread.sleep(5000);
        driver.quit();
    }
}

----错误信息----

  

1477634165078 geckodriver INFO在127.0.0.1:15694 10月28日收听,   2016年4:56:05 org.openqa.selenium.remote.ProtocolHandshake   createSession INFO:尝试双方言会话,假设Postel' s   法律在远程端是正确的   1477634165633 mozprofile :: profile INFO使用配置文件路径   C:\用户\ BM-TOS〜1个\应用程序数据\本地\ TEMP \ rust_mozprofile.lCCcXFkfXvty   1477634165646 geckodriver :: marionette INFO启动浏览器C:\ Program   文件(x86)\ Mozilla Firefox \ firefox.exe   1477634166149 geckodriver :: marionette INFO连接到木偶   localhost:53137 1477634167869 Marionette INFO在港口53137上收听   1477634170473 Marionette INFO startBrowser   2e5153b8-f5ad-4d7b-b974-d8ae27ba7b71 2016年10月28日下午4:56:10   org.openqa.selenium.remote.ProtocolHandshake createSession INFO:   检测到的方言:W3C [Child 9388]警告:管道错误:232:文件   C:/builds/moz2_slave/m-rel-w32-00000000000000000000/build/src/ipc/chromium/src/chrome/common/ipc_channel_win.cc,   513行[儿童9388] ### !!! ABORT:中止通道错误:文件   C:/builds/moz2_slave/m-rel-w32-00000000000000000000/build/src/ipc/glue/MessageChannel.cpp,   第2052行

     

!!! [Child] [MessageChannel]错误:(msgtype = 0xFA0005,name = PTexture :: Msg_Destroy)频道错误:不能

     

发送/ RECV

     

!!! [Child] [MessageChannel]错误:(msgtype = 0xFA0005,name = PTexture :: Msg_Destroy)频道错误:不能

     

发送/ RECV

     

!!! [Child] [MessageChannel]错误:(msgtype = 0xFA0005,name = PTexture :: Msg_Destroy)频道错误:不能

     

发送/ RECV

     

!!! [Child] [MessageChannel]错误:(msgtype = 0xFA0005,name = PTexture :: Msg_Destroy)频道错误:不能

     

发送/ RECV

     

!!! [Child] [MessageChannel]错误:(msgtype = 0x400003,name = PCompositable :: Msg_Destroy)频道错误:

     

无法发送/接收

.....

2016年10月28日下午4:56:28 org.openqa.selenium.os.UnixProcess destroy 严重:无法使用PID 5288终止进程

1 个答案:

答案 0 :(得分:4)

您正在使用drive.quit()而不是driver.close()。退出关闭驱动程序和窗口。这就是您因为驱动程序不再可用而导致子错误的原因。 close(),将关闭窗口但保持驱动程序活着。我只会在程序的最后使用quit(比如清理例程)。我在我的机器上运行了你的代码(修改如下)并且没有任何错误。此外,你应该把它放在try / catch周围,以便你可以看到发生了什么。我发现使用selenium时,try / catch有时会显示控制台未显示的错误。我和之前的项目有类似的东西,try catch辅助调试。

package com.kurt.stackoverflow.selenium;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class Gecko_Driver
{
    public static void main(String[] args) throws InterruptedException{

    try
    {
       System.setProperty("webdriver.gecko.driver","C:\\tmp\\geckodriver-v0.11.1-win64\\geckodriver.exe");
       WebDriver driver = new FirefoxDriver();
       driver.get("http://www.toolsqa.com");
       Thread.sleep(5000);
       driver.close();
    }
    catch (Exception e)
    {
       System.out.println("Caught message " + e.getMessage());
       driver.close();
    }
}

}