【问题标题】:Issues with latest version of Opera and it's driver最新版 Opera 及其驱动程序的问题
【发布时间】:2017-10-01 03:33:41
【问题描述】:

根据我之前的issue,我将 Opera 降级到 V40,从昨天开始我遇到了按钮点击和切换到 iframe 等问题。

所以我将 Opera 升级到 v44 并从 here 下载了适用于 windows 64 的最新版本的 Operadriver v2.27。

初始化驱动程序:

static string path = @"C:\Drivers";
public static IWebDriver _driverInstance = null;
_driverInstance = new OperaDriver(path);

一开始我遇到了异常

Result Message: Initialization method HomePage_Tests.Init threw exception. System.InvalidOperationException: System.InvalidOperationException: unknown error: cannot find Opera binary
(Driver info: OperaDriver=2.27 (f61056e560d197467fd6d27c7fbd7fea572fe8bd),platform=Windows NT 10.0.14393 x86_64).
Result StackTrace:  
at OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse)
at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters)
at OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities desiredCapabilities)
at OpenQA.Selenium.Remote.RemoteWebDriver..ctor(ICommandExecutor commandExecutor, ICapabilities desiredCapabilities)
at OpenQA.Selenium.Opera.OperaDriver..ctor(String operaDriverDirectory, OperaOptions options)
at OpenQA.Selenium.Opera.OperaDriver..ctor(String operaDriverDirectory)
at SmartDebitTestFramework.Drivers.Initialize(String browser) 

然后把代码改成

DesiredCapabilities capabilities = DesiredCapabilities.Opera();
OperaOptions options = new OperaOptions();
options.BinaryLocation = path;
capabilities.SetCapability(OperaOptions.Capability, options);
_driverInstance = new OperaDriver(options);

现在例外是:

Result Message: Initialization method HomePage_Tests.Init threw exception. System.InvalidOperationException: System.InvalidOperationException: unknown error: Opera failed to start
(Driver info: OperaDriver=2.27 (f61056e560d197467fd6d27c7fbd7fea572fe8bd),platform=Windows NT 10.0.14393 x86_64).
Result StackTrace:  
at OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse)
at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters)
at OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities desiredCapabilities)
at OpenQA.Selenium.Remote.RemoteWebDriver..ctor(ICommandExecutor commandExecutor, ICapabilities desiredCapabilities)
at OpenQA.Selenium.Opera.OperaDriver..ctor(OperaDriverService service, OperaOptions options, TimeSpan commandTimeout)
at OpenQA.Selenium.Opera.OperaDriver..ctor(OperaOptions options)
at SmartDebitTestFramework.Drivers.Initialize(String browser) 

您能否帮助正确设置以使 Opera 正常工作。

谢谢。

【问题讨论】:

    标签: c# selenium selenium-webdriver opera operadriver


    【解决方案1】:

    我已经通过这种方式解决了这个问题:

    //Opera settings OperaDriverService service = OperaDriverService.CreateDefaultService(@""); \\path to OD OperaOptions options = new OperaOptions(); options.BinaryLocation = @""; \\path to my Opera browser WebDriver = new OperaDriver(service, options);

    【讨论】:

    • 感谢您的回复。对于上述代码的最后一行,我仍然收到“Opera 无法启动”异常。
    【解决方案2】:

    你可以这样试试吗

    capabilities = new DesiredCapabilities();
    capabilities.SetCapability(CapabilityType.BrowserName, "operablink");
    capabilities.setCapability("opera.binary", "/path/to/your/opera");
    capabilities.Platform = new Platform(PlatformType.Windows);
    _webDriver = new OperaDriver(capabilities);
    

    在您的节点上:

    {
      "capabilities":
      [
        {
          "browserName": "operablink",
          "platform": "WINDOWS",
          "maxInstances": 5,
          "seleniumProtocol": "WebDriver"
        }
      ],
      "proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
      "maxSession": 1,
      "port": 5555,
      "register": true,
      "registerCycle": 5000,
      "hub": "http://localhost:4444",
      "nodeStatusCheckTimeout": 5000,
      "nodePolling": 5000,
      "role": "node",
      "unregisterIfStillDownAfter": 60000,
      "downPollingLimit": 2,
      "debug": false,
      "servlets" : [],
      "withoutServlets": [],
      "custom": {}
    }
    

    【讨论】:

    • '_webDriver = new OperaDriver(capabilities);'引发错误。 OperaDriver 不接受功能作为参数。
    猜你喜欢
    • 2011-10-28
    • 1970-01-01
    • 1970-01-01
    • 2014-09-03
    • 2023-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-14
    相关资源
    最近更新 更多