如何在 iframe 是动态的 tinymce 中发送密钥
本文关键字:tinymce 密钥 动态 iframe | 更新日期: 2023-09-27 18:33:20
如何将密钥发送到同一屏幕上的 3 个TinyMCE
字段,并且使用 Selenium 网络驱动程序c#
Iframe ID
是动态的?
如果帧的id
不是动态的,则下面的代码有效:
Driver.SwitchTo().Frame("ea05aa0a-668b-4a08-9770-221262e77b29_ifr");
Driver.FindElement(By.Id("tinymce")).SendKeys("hello 1");
Driver.SwitchTo().DefaultContent();
Driver.SwitchTo().Frame("c45c67ae-d33b-4ec3-be2e-12a6d40b14ab_ifr");
Driver.FindElement(By.Id("tinymce")).SendKeys("hello 2");
Driver.SwitchTo().DefaultContent();
Driver.SwitchTo().Frame("bbfce656-ea5e-4f01-b409-437d0c60e187_ifr");
Driver.FindElement(By.Id("tinymce")).SendKeys("hello 3");
Driver.SwitchTo().DefaultContent();
代码字段 TinyMCE
1:
<div id="mce_44" class="mce-edit-area mce-container mce-panel mce-stack-layout-item" tabindex="-1" hidefocus="1" style="border-width: 1px 0px 0px;">
<iframe id="ea05aa0a-668b-4a08-9770-221262e77b29_ifr" frameborder="0" src="javascript:""" allowtransparency="true" title="Área de texto formatado. Pressione ALT-F9 para exibir o menu…a exibir a barra de ferramentas ou ALT-0 para exibir a ajuda" style="width: 100%; height: 100px; display: block;">
#document
<!DOCTYPE html>
<html webdriver="true">
<head></head>
<body id="tinymce" class="mce-content-body " contenteditable="true" onload="window.parent.tinymce.get('ea05aa0a-668b-4a08-9770-221262e77b29').fire('load');" spellcheck="false"></body>
谢谢!
嗨,
只有当这是页面上唯一的 iFrame 时,您才能尝试这样做,理想情况下它会像
IWebElement iFrameElement = driver.findElement(By.Xpath("//*[contains(@class,'edit-
area')]/child:::iframe"));
Driver.SwitchTo().Frame(iFrameElement);
或者使用不同的 xpath 表达式来计算 iFrame 的东西,比如
//*[contains(@class,'edit-area')]/preceding:::iframe[contains(@id,'ifr')]
希望这有帮助
然后尝试以下代码进行切换一次,并在帧上执行所有操作:
Driver.SwitchTo().Frame(Driver.FindElement(By.Xpath("//iframe[contains(@title, 'Área de texto formatado.')]")));