我使用以下配置:
使用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)
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
atOpenQA.Selenium.Remote.RemoteWebDriver.OpenQA.Selenium.Internal.IActionExecutor.PerformActions(List
答案 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();