问题描述
当我尝试使用 Selenium 将包含 <ul><li>
标记的字符串发送到文本框时,会打开新选项卡并且文本区域填充 <ul>
而不是 <li>
例如:
var body = driver.FindElement(By.XPath("//*[@id=\"cke_1_contents\"]/textarea")); // then you find the body
body.SendKeys('<ul><li>option1</li><li>option2</li></ul>')
然后用 <ul></ul>
填充 textarea 并在 Chorome 中打开 2 个新标签!!!
一个真实的结果:用 <ul><li>option1</li><li>option2</li></ul>
填充 textarea
但是现在对于每个 li 在浏览器中打开的新标签页而不是放在 textarea 中
解决方法
您可以通过将字符串复制到剪贴板,然后使用 WebDriver SendKeys() 将其粘贴来实现。
像这样:
Clipboard.SetText(myStringContainingHTML);
driver.FindElement(By.Id("myTxtBoxId")).SendKeys(OpenQA.Selenium.Keys.LeftControl + "v");
在您的具体问题中
Clipboard.SetText("<ul><li>option1</li><li>option2</li></ul>");
driver.FindElement(By.XPath("//*[@id=\"cke_1_contents\"]/textarea")).SendKeys(OpenQA.Selenium.Keys.LeftControl + "v");