Selenium 3.0.1在driver.quit()@ Win 7 Home Premium& amp; GeckoDriver 0.13.0

时间:2017-02-01 20:25:46

标签: selenium firefox geckodriver

Win 7和FireFox以德语运行 Win 7安装了所有可用的更新。

32位和64位GeckoDriver相同! (我的Win 7是64位;我的FireFox是32位)。

相同的GeckoDriver 0.14。

这只是我的电脑上的一个问题吗?

driver.quit()正在使用我的InternetExplorer而没有任何问题。

package JS_JFrame1;                                       

import org.openqa.selenium.WebDriver;                     
import org.openqa.selenium.firefox.FirefoxDriver;        

public class SeleniumFireFoxMinimal1 {  



public static void main(String[] args) throws InterruptedException {

    System.setProperty("webdriver.gecko.driver", "e:\\geckodriver.exe");

    WebDriver driver = new FirefoxDriver();                 

    driver.get("http://www.toolsqa.com");                    

    Thread.sleep(5000);                                   

    driver.quit();                                        

}                                                            

}                                                                    

像这样的其他硒命令非常有效:

    element = driver.findElement(By.id("sinp"));              

    System.out.println( "Element found!");                   

    element.clear();                                                

    element.sendKeys("black");                                      

    element.submit();                                                       

Eclipse Console-Output:

  

1485978825934 geckodriver INFO收听于127.0.0.1:21352 Feb 01,   2017 8:53:46 PM org.openqa.selenium.remote.ProtocolHandshake   createSession INFORMATION:假设,尝试双方会话   Postel的法律在远程端是正确的   1485978826606 mozprofile :: profile INFO使用配置文件路径   C:\用户\ XXXXXXX \应用程序数据\本地的\ Temp \ rust_mozprofile.qNYZq4KKbeGl   1485978826606 geckodriver :: marionette INFO启动浏览器C:\ Program   文件(x86)\ Mozilla Firefox \ firefox.exe   1485978826637 geckodriver :: marionette INFO连接到木偶   localhost:51926 1485978828021 Marionette INFO在港口51926上收听   2017年2月1日下午8:53:52 org.openqa.selenium.remote.ProtocolHandshake   createSession信息:检测到的方言:W3C JavaScript警告:   https://www.youtube.com/yts/jsbin/player-de_DE-vflWB2cvt/base.js,行   664:错误:WebGL:getParameter:参数:无效的枚举值[Child 4416] ### !!! ABORT:中止通道错误:文件   C:/builds/moz2_slave/m-rel-w32-00000000000000000000/build/src/ipc/glue/MessageChannel.cpp,   line 2056 Feb 01,2017 8:54:07 PM org.openqa.selenium.os.UnixProcess   销毁SCHWERWIEGEND:无法使用PID 4608终止进程

enter image description here

4 个答案:

答案 0 :(得分:1)

browser.tabs.remote.autostart.2设置为 false

FirefoxOptions options = new FirefoxOptions();
options.BrowserExecutableLocation = Settings.Default.FirefoxBinary;

>>>> profile.SetPreference("browser.tabs.remote.autostart.2", false);
FirefoxProfile profile = new FirefoxProfile();
....
options.Profile = profile;
driverSet.Driver = new FirefoxDriver(options);

答案 1 :(得分:1)

问题与firefox从firefox版本> = 50开始使用多进程环境的事实有关,似乎selenium无法处理它。

添加以下行应解决此问题:

FirefoxProfile ffProfile = new FirefoxProfile();
ffProfile.setPreference("browser.tabs.remote.autostart.2", false);
WebDriver driver = new FirefoxDriver(newFirefoxOptions().setProfile(ffProfile));

答案 2 :(得分:0)

退出驱动程序是一个已知的Firefox / geckodriver问题,有关详细信息,请参阅here

它出现在一些FF版本中,有人说它是固定的,有些人说它不是。我无法找到更好的解决方案,所以我打开'旧'Firefoxdriver和FF v47.0.2,它工作正常。

答案 3 :(得分:0)

我找到了解决方法。我的代码是在C#

Utility.Instance.KillProcess("firefox");
System.Windows.Forms.SendKeys.SendWait("{ESC}");
Utility.Instance.KillProcess("geckodriverserver");

希望它会对你有所帮助。