我正在C#(windows10,.net fw 4.6.2(中使用Selenium WebDriver(3最新版本,Chrome驱动程序,83最新版本(。我试图在打开的网页上从正在运行的自动化测试的代码中启动IDE录制(我的意图是记录自动化测试中执行的所有操作(,但没有成功。
我正在尝试使用IDE扩展API(我不希望IDE在测试期间真正打开,也不希望它重新打开页面进行记录,因为它已经被自动化测试打开(
我的最终意图是将IDE录制的结果用于我需要的东西。
这是我的C#代码:
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
namespace IDE
{
class Program
{
static void Main(string[] args)
{
ChromeOptions options = new ChromeOptions();
// Load IDE extension to chrome
options.AddExtension(@"C:Users<my user name>Downloadsextension_3_17_0_0.crx");
IWebDriver driver = new ChromeDriver(options);
// Start IDE recording
((IJavaScriptExecutor)driver).ExecuteScript("chrome.runtime.sendMessage("mooikfkahbdckldjjndioackbalphokd", {uri: "/record/session", verb: "post", payload: {url: 'https://www.google.com'}});");
driver.Navigate().GoToUrl("https://www.google.com");
driver.Manage().Window.Maximize();
// Do some more actions
// ......
// Stop the IDE recording
((IJavaScriptExecutor)driver).ExecuteScript("chrome.runtime.sendMessage("mooikfkahbdckldjjndioackbalphokd", {uri: "/record/session", verb: "delete"});");
driver.Quit();
}
}
}
我可以看到IDE扩展已经加载;chrome.runtime.sendMessage";总是抛出一个异常(无论我为其参数提供什么值(:"无法读取未定义的"的属性"sendMessage">。我粘贴在这里的代码只是一个例子。我尝试了许多其他变体的";chrome.runtime.sendMessage";。他们都抛出了相同的异常。
我在网上看到了一些关于我的问题的异常的讨论,但他们都提到了一些必须更改的java脚本文件(清单、内容等(,我不知道如何将他们的建议与我的代码结合起来,就像在C#中一样。
我在这里错过了什么?任何帮助都将不胜感激。
谢谢!!!
我仍在等待任何能提供帮助的人。我的问题很详细,解释得很好。代码也是如此,可以很容易地粘贴到编辑器中(只需在机器中有相关的引用和CRX文件(。如果我能把它缩小到一句话,那就是:;如何在C#代码中使用来自web驱动程序的SeleniumIDE API">