Selenium Sendkeys 包含 <ul><li> 标签到 textarea

问题描述

当我尝试使用 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");