相关疑难解决方法(0)

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 WebDriver 3.4.0 + geckodriver 0.18.0 + Firefox ?? - 哪种组合有效?

我使用.Net在Windows Server 2008R2上使用Firefox 47.0.2运行Selenium 2.x. 我正在运行x64代码.

我正在尝试升级到Selenium 3.40 + geckdriver 0.18.0,但我找不到运行100%的Firefox版本.除非另有说明,否则我将使用x64 en-US版本的Firefox.他们是从这里下载的.

这是我发现的:

  • Firefox 51.0.1 - 太旧了 - Geckodriver抱怨"无法找到一组匹配的功能"
  • Firefox 52.0.2 - 调用setPageLoadTimeout时出现IndexOutOfBoundException
  • Firefox 52.2.1esr - 调用setPageLoadTimeout时出现IndexOutOfBoundException
  • Firefox 53.0.3 - 退出时,Firefox窗口保持不变,需要手动关闭
  • Firefox 54.0.1(尝试过x64和X86) - 退出时崩溃
  • Firefox 55b9 - 退出时崩溃

是否有硒3.4.0 + geckodriver + Firefox的组合可以在.Net上运行?

firefox selenium selenium-webdriver geckodriver

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

如何在Ubuntu上正确使用selenium与geckodriver和firefox与python?

我正在尝试在我的 Ubuntu 机器上将 geckodriver 与 firefox 和 selenium 一起使用。这是我到目前为止的代码:

from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.common.keys import Keys
from selenium import webdriver


#path where browser is installed
binary = '/usr/bin/firefox'
options = webdriver.FirefoxOptions()
options.binary = binary
options.add_argument('start-maximized')
options.add_argument('--headless')


cap = DesiredCapabilities().FIREFOX
cap["marionette"] = False


path_to_driver = "/home/andrea/geckodriver"

# run firefox webdriver from executable path 
driver = webdriver.Firefox(firefox_options=options, capabilities=cap, executable_path = path_to_driver)
#driver = webdriver.Firefox(capabilities=cap, executable_path = path_to_driver)


driver.get("https://www.amboss.com/us/account/login")

Run Code Online (Sandbox Code Playgroud)

尽管如此,我还是收到以下错误:

selenium.common.exceptions.WebDriverException: Message: Can't load the profile. 
Possible firefox …
Run Code Online (Sandbox Code Playgroud)

python ubuntu firefox selenium-webdriver geckodriver

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