我想使用Firefox使用Google
打开Selenium
。我使用的firefox版本是52.3.0 (64-bit)
。我正在尝试这种方式;
System.setProperty("webdriver.gecko.driver","C://geckodriver-v0.19.0-win64_2//geckodriver.exe"); // Setting GECKODRIVER
WebDriver WD = new FirefoxDriver();
WD.get("http://www.google.com");
但是在运行程序时,它会进入休眠状态并且输出为;
1506741259735 geckodriver INFO geckodriver 0.19.0
1506741259744 geckodriver INFO Listening on 127.0.0.1:31605
1506741260475 mozrunner::runner INFO Running command: "C:\\Program Files\\Mozilla Firefox\\firefox.exe" "-marionette" "-profile" "C:\\Users\\SPERID~1\\AppData\\Local\\Temp\\rust_mozprofile.viiF05x2u2Ct"
1506741262570 Marionette INFO Listening on port 2828
这里有什么问题?我无法理解它为什么会起作用?
答案 0 :(得分:1)
使用此选项定义您要使用的Firefox
版本
我遇到的大多数问题Selenium
都是关于版本问题,没有明确的消息或关于哪些版本兼容的信息。
System.setProperty("webdriver.firefox.bin", "/path/to/another/firefox/dot/exe");
答案 1 :(得分:0)
假设您使用的是最新的 Selenium-Java
客户端v 3.6.0
和 geckodriver
v 0.19.0
,同时提及geckodriver.exe
的绝对路径,您需要使用单个正斜杠 (/)
或转义反斜杠 (\\)
,如下所示:
System.setProperty("webdriver.gecko.driver", "C:/Utility/BrowserDrivers/geckodriver.exe");
WebDriver driver = new FirefoxDriver();
driver.get("https://stackoverflow.com");
System.out.println("Application opened");
System.out.println("Page Title is : "+driver.getTitle());
driver.quit();
答案 2 :(得分:0)
我认为问题是Firefox版本。
我下载了Firefox ESR(52.3.0)以供Selenium IDE使用,但是当我使用WebDriver时,它也会自动使用Firefox的ESR版本并以您描述的方式失败。
当我卸载Firefox ESR版本时,WebDriver会自动使用Firefox 55.0.3并且运行正常。
编辑:我认为我仍然想要ESR,所以我重新安装它并将默认安装路径从“C:\ Program Files \ Mozilla Firefox”更改为“C:\ Program Files \ Mozilla Firefox ESR”因此Selenium WebDriver无法轻易找到并使用较新版本的Firefox。
答案 3 :(得分:0)
我觉得我还想要ESR,
首先要避免这种“使用错误的Firefox”问题,您可以使用Firefox 54 Portable代替ESR。
为了保证自己的安全,请安装Firefox 54 portable,以便使用Selenium IDE进行自动化测试。您应该将Firefox的可移植版本安装在与主Firefox不同的目录中。这样您就可以为常规Firefox保持自动更新。这可确保您在浏览网页时安全。
答案 4 :(得分:-1)
尝试将Marionette功能设置为true,
FirefoxOptions options = new FirefoxOptions();
options.setCapability("marionette", true);
WebDriver WD = new FirefoxDriver(options);