0

我正在尝试使用 Selenium 在页面上查找元素。以下是一些示例内容:

<body id="tinymce" class="mceContentBody " contenteditable="true" dir="ltr"        style="overflow: auto;">

这是我尝试选择它的方式:

driver.findElement(By.cssSelector("body#tinymce")).sendKeys("Hello, everyone!! Don't worry it is a test letter to check connection!!");

我没有得到返回的元素。

4

2 回答 2

2

看起来您正在测试TinyMCE editor

问题是:

  • 它在 iframe 中,您需要先切换到 iframe。
  • 您需要将密钥发送到该 iframe 内的<body>元素(不是)<input>

这是做什么:

// switch to iframe, use locator of your choice, "#editMe_ifr" here as an example
WebElement editorFrame = driver.findElement(By.cssSelector("#editMe_ifr"));
driver.switchTo().frame(editorFrame);

WebElement body = driver.findElement(By.TagName("body")); // then you find the body
body.sendKeys(Keys.CONTROL + "a"); // send 'ctrl+a' to select all
body.SendKeys("Some text");

进一步阅读:

于 2013-08-25T21:14:08.603 回答
0

您可以将您的 HTML 更改为:

<body>
    <input id="tinymce" type="text"/>
</body>

您可以将选择器从 更改body#tinymce#tinymce。使用 id 时不需要指定标记名,因为 id 无论如何都应该是唯一的。

于 2013-08-25T20:18:16.930 回答