标签: firefox-marionette

webdriver.firefox.marionette和webdriver.gecko.driver之间的区别

我现在正在学习Selenium,遇到了一个问题.

我知道Selenium默认支持旧的Firefox版本,没有驱动程序.对于最新版本的Firefox,我们必须下载驱动程序并使用它来定义它System.setProperty.

根据此链接,对于Firefox 45和46,启动驱动程序代码可能如下所示:

WebDriver driver = new FirefoxDriver();
Run Code Online (Sandbox Code Playgroud)

我的Firefox版本为45.5.1.但是上面的代码仍然不起作用.所以根据这个链接,我添加了:

System.setProperty("webdriver.firefox.marionette","C:\\geckodriver.exe");

它奏效了.

然后我意识到我没有安装geckodriver.exe在我的电脑上.要了解它是如何进行的,我已经更改为以下代码:

System.setProperty("webdriver.firefox.marionette","");
Run Code Online (Sandbox Code Playgroud)

它仍然有效.

所以,这是我的第一个问题:发生了什么?我确信geckodriver.exe在我的环境中不存在.如果没有指出位置,那我为什么要设置属性?

另外,我见过的代码如下:

System.setProperty("webdriver.gecko.driver", "/tools/marionette/wires.exe");
Run Code Online (Sandbox Code Playgroud)

我的第二个问题是,是什么样的区别webdriver.gecko.driverwebdriver.firefox.marionettewires.exegeckodriver.exe

selenium selenium-firefoxdriver selenium-webdriver firefox-marionette geckodriver

51
推荐指数
3
解决办法
3万
查看次数

对于Selenium测试仪,使用Marionette FirefoxDriver而不是旧的Selenium FirefoxDriver有什么好处?

上周,这款名为Marionette的新FirefoxDriver出现了很多噪音.要将Firefox与Selenium一起使用,我们过去常常使用"旧的"Selenium FirefoxDriver.从Firefox 48.0开始,将需要使用由Mozilla开发的这个新的FirefoxDriver.

我知道需要改变这个方向以获得每个浏览器支持并开发其驱动程序并使驱动程序独立于Selenium.此外,假设Mozilla开发自己的驱动程序,它将更快,更容易地解决问题和开发功能.

我的问题是,对于那些使用Selenium框架创建自动化测试的人来说,使用Marionette而不是"旧的"Selenium支持的FirefoxDriver有什么好处吗?_(比如更好的性能,更好的兼容性......)

selenium selenium-firefoxdriver selenium-webdriver firefox-marionette

16
推荐指数
1
解决办法
4921
查看次数

Selenium安装Marionette webdriver

我有这个问题与firefox版本47 https://github.com/seleniumhq/selenium/issues/2110

所以,我尝试添加木偶网络驱动程序来解决这个问题:https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver

但:

from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

firefox_capabilities = DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = True
firefox_capabilities['binary'] = '/Users/myproject/geckodriver-0.8.0-OSX'
Run Code Online (Sandbox Code Playgroud)

返回错误:

selenium.common.exceptions.WebDriverException:消息:'wires'可执行文件需要在PATH中.

异常AttributeError:"'服务'对象在>忽略中没有属性'process'"

硒== 2.53.5

python firefox selenium firefox-marionette

12
推荐指数
2
解决办法
2万
查看次数

geckodriver和牵线木偶之间的区别

我不完全理解geckodriver牵线木偶之间的区别.

  • 任何人都可以澄清它们之间的区别吗?

例如,当我使用Selenium WebDriver来控制Firefox浏览器时,我需要一个geckodriver二进制文件来监听Selenium 的WebDriver协议.

  • Marionette是实际驱动Firefox的Firefox扩展吗?

firefox selenium-webdriver firefox-marionette geckodriver

12
推荐指数
1
解决办法
4447
查看次数

第二次发布时,Selenium Marionette驱动程序UnreachableBrowserException

我正在玩Selenium Marionette WebDriver.在我的应用程序中,我想顺序打开多个Marionette驱动程序.基本上是这样的:

MarionetteDriver driver = new MarionetteDriver();
// do some stuff
driver.quit();

// a while later

driver = new MarionetteDriver();
// do some stuff
driver.quit();
Run Code Online (Sandbox Code Playgroud)

现在我面临的问题是,只有第一个Marionette实例可以成功启动,并且对于每个后来的尝试,我都会遇到以下异常.问题每次都会发生,并且使用的端口总是在变化,因此显然没有端口冲突.

Exception in thread "main" org.openqa.selenium.remote.UnreachableBrowserException: Could not start a new session. Possible causes are invalid address of the remote server or browser start-up failure.
Build info: version: '2.48.2', revision: '41bccdd10cf2c0560f637404c2d96164b67d9d67', time: '2015-10-09 13:08:06'
System info: host: 'qqilihq.local', ip: '192.168.1.2', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.11.2', java.version: '1.7.0_71'
Driver info: driver.version: …
Run Code Online (Sandbox Code Playgroud)

java selenium selenium-webdriver firefox-marionette

9
推荐指数
1
解决办法
5298
查看次数

使用.NET C#的Selenium Firefox木偶驱动程序

我最近一直在使用Selenium(http://www.seleniumhq.org/)进行测试.它随机停止工作,我相信这是由于Selenium WebDriver 2.53.0不再与Firefox 47兼容(处理Firefox浏览器的WebDriver组件(FirefoxDriver)已经停产).

Marionette([ https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver#.NET] [2 ])是FirefoxDriver的下一代产品,我一直试图将其转化为在我的机器上工作,但没有运气.

到目前为止我已经下载了驱动程序,将文件重命名为wires.exe并保存在我网站的根目录中.然后我添加了以下代码:

string strWires = @"Z:\Web_Development\Websites\test\wires.exe";
Environment.SetEnvironmentVariable("webdriver.gecko.driver", strWires);

FirefoxOptions options = new FirefoxOptions();
options.IsMarionette = true;
FirefoxDriver driver = new FirefoxDriver(options);
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误消息:

"WebDriver.dll中出现'OpenQA.Selenium.DriverServiceNotFoundException'类型的例外,但未在用户代码中处理

附加信息:wires.exe文件不存在于当前目录或PATH环境变量的目录中.该驱动程序可以从github.com/jgraham/wires/releases下载."

如果有人知道如何让Marionette驱动程序与Selenium合作(或者甚至可以指向正确的方向)并且可以提供分步说明,那将非常感激.

谢谢,

丹尼尔

c# firefox selenium selenium-webdriver firefox-marionette

8
推荐指数
1
解决办法
1万
查看次数

Python为Selenium设置Firefox首选项 - 下载位置

我使用Selenium Marrionette和GeckoDriver来提取网络数据.我使用以下命令设置我的Firefox配置文件首选项:

fp = webdriver.FirefoxProfile()
fp.set_preference("browser.download.folderList", 1)
fp.set_preference("browser.helperApps.alwaysAsk.force", False)
fp.set_preference("browser.download.manager.showWhenStarting",False)
fp.set_preference("browser.download.dir", "H:\Downloads")
fp.set_preference("browser.download.downloadDir","H:\Downloads")
fp.set_preference("browser.download.defaultFolder","H:\Downloads")

binary = FirefoxBinary(r'C:\Program Files (x86)\Mozilla Firefox\Firefox.exe')

firefox_capabilities = DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = True

driver = webdriver.Firefox(capabilities=firefox_capabilities, firefox_binary=binary, firefox_profile = fp)
Run Code Online (Sandbox Code Playgroud)

根据我的理解,阅读无法设置firefox配置文件首选项并将FirefoxProfile传递给FirefoxDriver后,现在使用时似乎没有做任何事情firefox_profile.所以我需要实现新的更新firefox_capabilities,但我不确定如何做到这一点.有任何想法吗?

python selenium web-scraping firefox-marionette geckodriver

8
推荐指数
1
解决办法
2万
查看次数

从Firefox WebDriver迁移到Marionette

我正在尝试从FireFoxDriver切换到MarionetteDriver.我设法通过运行以下命令运行firefox和MarionetteDriver:

public void runMarionnete(){
    DesiredCapabilities dc = DesiredCapabilities.firefox();
    OSUtils.setProperty("webdriver.firefox.bin", "C:\\Firefox\\firefox.exe");
    OSUtils.setProperty("webdriver.gecko.driver","C:\\Drivers\\wires-0.6.2-win.exe"));
    _driver = new MarionetteDriver(dc);
}
Run Code Online (Sandbox Code Playgroud)

但我有两件事我不知道该怎么做:

1.如何在驱动程序中添加XPI扩展?以我使用的旧方式:FirefoxProfile.addExtension ...

2.如何配置所有firefox属性,就像我以前一样,例如:

    profile.setPreference("browser.startup.homepage;about:home","about:blank");
    profile.setPreference("startup.homepage_welcome_url","about:blank");
    profile.setPreference("browser.usedOnWindows10.introURL","about:blank");
    profile.setPreference("devtools.devedition.promo.url","");
    profile.setPreference("xpinstall.signatures.required",false);
Run Code Online (Sandbox Code Playgroud)

谢谢!

selenium webdriver firefox-marionette

6
推荐指数
1
解决办法
4158
查看次数

firefox木偶绕过安全例外

我正在使用Marionette/Geckodriver v9.0 for mac with selenium jar 2.53.1.当它打开firefox 47时,我收到"你的连接不安全"的错误.我用来创建驱动程序的代码是:

  FirefoxProfile firefoxProfile = null; 
  firefoxProfile = new FirefoxProfile();
  firefoxProfile.setAcceptUntrustedCertificates(true);
  firefoxProfile.setAssumeUntrustedCertificateIssuer(false);

  DesiredCapabilities capability = DesiredCapabilities.firefox();
  capability.setCapability("marionette", true);
  capability.setCapability(FirefoxDriver.PROFILE, firefoxProfile);
  capability.setCapability("handlesAlerts", true);
  return new MarionetteDriver(capability);
Run Code Online (Sandbox Code Playgroud)

那么,如何将我的网站添加为例外或关闭支票呢?或者它是Marionette尚未实现的功能吗?

selenium webdriver firefox-marionette

6
推荐指数
1
解决办法
3007
查看次数

在 Marionette 驱动程序中禁用日志跟踪

启动时MarionetteDriver,它会为每个操作打印日志语句。例如

1465882610065   Marionette  TRACE   conn0 -> [0,138,"executeScript",{"args":[],"newSandbox":false,"script":"return Math.max(document.body.scrollHeight, document.documentElement.scrollHeight,document.body.offsetHeight, document.documentElement.offsetHeight,document.body.clientHeight, document.documentElement.clientHeight);","scriptTimeout":null,"specialPowers":false}]
1465882610066   Marionette  TRACE   conn0 <- [1,138,null,{"value":895}]
1465882610070   Marionette  TRACE   conn0 -> [0,139,"executeScript",{"args":[],"newSandbox":false,"script":"window.devicePixelRatio = window.devicePixelRatio || window.screen.deviceXDPI / window.screen.logicalXDPI; var pr = window.devicePixelRatio; if (pr != undefined && pr != null) return pr; else return 1.0;","scriptTimeout":null,"specialPowers":false}]
1465882610071   Marionette  TRACE   conn0 <- [1,139,null,{"value":1}]
1465882610319   Marionette  TRACE   conn0 -> [0,140,"findElements",{"using":"css selector","value":".logOut"}]
1465882610321   Marionette  TRACE   conn0 <- [1,140,null,[{"element-6066-11e4-a52e-4f735466cecf":"f9d9adc3-58df-446a-953d-eb793ac27025","ELEMENT":"f9d9adc3-58df-446a-953d-eb793ac27025"}]]
1465882610325   Marionette  TRACE   conn0 -> [0,141,"isElementDisplayed",{"id":"f9d9adc3-58df-446a-953d-eb793ac27025"}]
1465882610335   Marionette  TRACE   conn0 <- [1,141,null,{"value":true}]
1465882610338 …
Run Code Online (Sandbox Code Playgroud)

java selenium firefox-marionette

5
推荐指数
1
解决办法
3606
查看次数