System.NotImplementedException:selenium webdriver C#中的performActions

时间:2017-05-24 08:43:03

标签: c# selenium selenium-webdriver

我使用以下配置:

  

使用C#语言的Selenium webdriver 3.3.0

     

Geckodriver V0.15.0

     

Firefox 45.9.0。

当我使用Actions方法使用Doubleclick()函数时。我遇到了错误System.NotImplementedException: performActions。这意味着我无法使用perform()函数执行此操作。 任何人都可以帮我解决这个问题吗?

以下是代码:

using System;
using System.IO;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.Interactions;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using cExcel = Microsoft.Office.Interop.Excel;

IWebElement date = driver.FindElement(By.XPath(".//*[@id='grid']/div[2]/table/tbody/tr[2]/td[61]"));
Actions builder = new Actions(driver); // Action method in interactions Lib use for DoubleClick()
builder.DoubleClick(date).Build();
builder.Perform();
date.SendKeys("Time");

以下是错误:

  

结果StackTrace:at   OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(响应   errorResponse)at   OpenQA.Selenium.Remote.RemoteWebDriver.Execute(字符串   driverCommandToExecute,Dictionary 2 parameters)
atOpenQA.Selenium.Remote.RemoteWebDriver.OpenQA.Selenium.Internal.IActionExecutor.PerformActions(List
1   OpenQA.Selenium.Interactions.Actions.Perform()中的actionSequenceList)   在UnitTestProject1.UnitTest1.TestMethod1()中   C:\ Users \用户TUM1HC \桌面\视觉   Studio \ MasterTool \ MasterTool \ UnitTest1.cs:第55行结果消息:   测试方法UnitTestProject1.UnitTest1.TestMethod1抛出异常:   System.NotImplementedException:performActions

1 个答案:

答案 0 :(得分:0)

目前还不清楚GeckoDriver当前实现了什么Actions,但0.15.0中似乎不支持DoubleClick

以下是相应的错误:https://bugzilla.mozilla.org/show_bug.cgi?id=1292178

如果可能,请更新到最新版本的GeckoDriver和Selenium WebDriver(甚至可能是Firefox)。您的代码适用于我的配置(Selenium WebDriver 3.4.0,GeckoDriver 0.16.1,Firefox 53.0.3)。

此外,从代码审核的角度来看,我更喜欢将多个操作链接在一起,将每个操作分开在自己的行上,并将build / perform保持在同一行:

builder.DoubleClick(date);
builder.SendKeys("Time");
builder.Build().Perform();