如何在selenium中获取和设置文本编辑器值

2024-04-10

我的网页上有文本编辑器,我需要使用 c# 中的 selenium 脚本填充其值。我知道如何为文本框执行此操作。我已经检查了流程在文本框中设置值 https://stackoverflow.com/questions/10557196/using-selenium-webdriver-in-c-how-do-i-select-a-text-box-to-write-in-then-wri但是当我尝试对文本编辑器执行相同的过程时,它不起作用,我想获取并设置编辑器的值。请帮助我我该怎么做。

获取文本框文本的代码是:

IWebDriver firefoxDriver = new FirefoxDriver();
IWebElement passwordTextBox = Driver.FindElement(By.Id("passwordTextBox"));
passwordTextBox.Clear();
passwordTextBox.SendKeys("password");

我尝试过下面的代码来设置编辑器的值

IWebElement detailFrame = driver.FindElement(By.CssSelector("#cke_1_contents .cke_wysiwyg_frame"));
driver.SwitchTo().Frame(detailFrame);
Thread.Sleep(1000);
var body = driver.FindElement(By.TagName("body")); // then you find the body
Thread.Sleep(1000);
body.SendKeys("<span>hiiiiiiii<span>");

看起来您正在尝试将密钥发送到 CKEditor。

请仔细阅读这篇文章:使用 Selenium WebDriver 测试所见即所得编辑器 http://yizeng.me/2014/01/31/test-wysiwyg-editors-using-selenium-webdriver/

  • 直接发送密钥

这种方法是您尝试过的方法,但没有成功。已知 Firefox 存在问题。您的代码应该适用于 PhantomJS 或 Chrome。注意<span>hiiiiiiii<span>将在编辑器中生成实际文本,而不是 span 元素。

  • 设置内部HTML
IWebElement detailFrame = driver.FindElement(By.CssSelector("#cke_1_contents .cke_wysiwyg_frame"));
driver.SwitchTo().Frame(detailFrame);

var body = driver.FindElement(By.TagName("body")); // then you find the body

var executor = driver as IJavaScriptExecutor;
executor.ExecuteScript("arguments[0].innerHTML = '<span>hiiiiiiii<span>'", body);
  • 使用CKEditor的原生API
var executor = driver as IJavaScriptExecutor;
executor.ExecuteScript("CKEDITOR.instances.ckeditor.setData('<span>hiiiiiiii<span>");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在selenium中获取和设置文本编辑器值 的相关文章

随机推荐

  • 当我运行 shell 命令时,有没有办法让我的 emacs 识别我的 bash 别名和自定义函数?

    在我的 shell 环境中 我有别名和自定义函数 当我在 emacs 实例中时 我总是使用emacs nw 然后我执行一个 shell 命令 M 我不能使用它们 这是有道理的 因为我想象它会启动自己的子外壳来执行这些操作 但是有没有办法 也
  • 不。 boost::bind 中的参数

    我们最多可以传递多少个参数给 boost bind 默认为 9 http www boost org doc libs 1 45 0 libs bind bind html NumberOfArguments http www boost
  • 如何将Spring boot日志直接摄取到elastic中

    我正在研究将 Spring Boot 应用程序日志直接发送到 Elastic Search 的可行性 不使用 filebeats 或logstash 我相信 Ingest 插件可能会对此有所帮助 我最初的想法是使用 TCP 上的 logba
  • 使用 Django 应用程序加载 CSS 时出现 Mime 类型问题

    我有一个托管在 Heroku 上的 Django 应用程序 但我的样式表未加载 现在我已经花时间阅读了有关此问题的其他问题 但我相信每种情况都是独一无二的 现在错误如下 拒绝应用 https mazzodjangoapp herokuapp
  • 如何停止.Net Core Web API中的自引用循环?

    我遇到了一些问题 我猜这些问题与使用 NET Core Web API 和 Entity Framework Core 的自引用有关 当我添加一些导航属性的 Includes 时 我的 Web API 开始变得令人窒息 我在较旧的 Web
  • 当存储状态更改时,React 组件不会更新

    下面是我的组件类 该组件似乎永远不会执行 componentWillUpdate 即使我可以在 mapStateToProps 返回之前通过日志记录看到状态更新 状态 100 发生变化 但组件不刷新 import React Compone
  • 从 cellRendererFramework 向父级发出事件

    使用 ag grid 您可以定义您的GridOptions columnDefs列信息包括cellRendererFramework 我有一个正在使用的组件cellRendererFramework其中包括通过单击其模板中的按钮触发的事件
  • 如何将HAR文件导入Excel

    我必须知道有关浏览器 例如 chrome 加载的文档的一些信息 因为检查元素是不错的选择 现在我必须将数据导入到 Excel 中 检查元素允许将数据保存为 har http 存档 文件 如何将网络信息从检查元素保存到 Excel 我的浏览器
  • 根据 Swift 中的 UILabel 文本调整 UIView 高度

    所以我有一个简单的UIView with a UILabel包含在其中 目前 高度UIView是硬编码的 当UILabel文本足够长 内容需要比文本更高的高度UIView提供 有没有一个简单的方法来计算合适的高度UIView为了显示包含的所
  • Django 3.x 错误:“mysql.connector.django”不是可用的数据库后端

    最近将 Django 项目从 2 x 升级到 3 x 我注意到mysql connector django后端 来自mysql connector python 不再有效 它使用的 Django 的最后一个版本是 2 2 11 3 0 就打
  • C++ 中独立于平台的 GUID 生成?

    在 C 中以编程方式生成 GUID 或 UUID 而不依赖于特定于平台的工具的最佳方法是什么 我正在尝试为模拟中的对象创建唯一标识符 但不能依赖 Microsoft 的实现 因为该项目是跨平台的 Notes 由于这是针对模拟器的 所以我 并
  • 存储/访问有向图的最佳方式

    我有大约 3500 个防洪设施 我想将它们表示为一个网络来确定水流路径 本质上是一个有向图 我目前正在使用 SqlServer 和 CTE 递归地检查所有节点及其上游组件 只要上游路径没有大量分叉 这就可以工作 然而 由于增加了上游的复杂性
  • Spring Data JPA更新方法

    我仍在寻找 Spring Data JPA 中的更新方法来更新给定的Object保存在关系数据库中 我只找到了一些解决方案 其中我被迫通过 Query 注释指定某种 UPDATE 查询 与 Modifying 相比 例如 Modifying
  • CodeIgniter SMTP 电子邮件消息 - 用等号替换字符

    我正在使用 CodeIgniter 电子邮件库通过我们的 Exchange 服务器发送电子邮件 我遇到的问题是电子邮件的内容变得混乱 有一些单词被等号 替换 我尝试了 2 个不同的 Exchange 服务器 它们位于不同的位置并且没有任何关
  • anaconda 中使用的 Gcc 版本的 python

    如何更改 anaconda 或虚拟环境中使用的 python gcc 版本 现在当我启动 python 时它显示 GCC 4 4 7 20120313 Red Hat 4 4 7 1 在linux2上 这与系统范围内的相同gcc in us
  • 我的问题是关于 R 的:如何对 R 中表中的每个重复进行编号?

    在我的数据集中 它们是全名列 例如 下面 我想在它旁边添加另一列 提及名称是否使用 R 出现了两次一 二 三 四 次 输出应类似于下面的列 重复次数 例如 数据集名称 People Full name Number of repetitio
  • 如何捕获并打印未知类型的异常

    我有一些程序 每次运行它时 它都会引发异常 我不知道如何检查它到底抛出了什么 所以我的问题是 是否可以捕获异常并打印它 如果它源自std exception你可以通过参考捕捉 try code that could cause except
  • 如何将 FFmpeg 命令行转换为 ffmpeg-python 代码?

    我有这个命令行代码 ffmpeg i 0 mp4 c v libx265 preset fast crf 28 tag v hvc1 c a aac bitexact map metadata 1 out mkv 我想将其转换为Python
  • 在同一个ipa中支持armv6和armv7

    我有一个 XCode 项目 配置如下 项目格式 XCode 3 1 兼容 架构 标准 armv6 armv7 基础 SDK 最新 iOS 当前设置为 iOS 4 2 仅构建活动架构 未选中 有效架构 armv6 armv7 我的问题 生成的
  • 如何在selenium中获取和设置文本编辑器值

    我的网页上有文本编辑器 我需要使用 c 中的 selenium 脚本填充其值 我知道如何为文本框执行此操作 我已经检查了流程在文本框中设置值 https stackoverflow com questions 10557196 using