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 に答える