введите в iframe в селене - PullRequest
       23

введите в iframe в селене

4 голосов
/ 28 марта 2012

Мне нужно ввести данные в iframe.Я сослался на

Печатание в IFrame с Selenium IDE

, но selenium.selectFrame(<xpath>) возвращает: Element not found error, и для iframe. * Не определено css1011 *

Использование firebug:

<iframe frameborder="0" allowtransparency="true" tabindex="0" src="" title="Rich text editor, templateWizardCKEditor1, press ALT 0 for help." style="width: 100%; height: 100%;"/>

Что может быть решением для этого?

Ответы [ 3 ]

6 голосов
/ 24 июля 2012

Я нашел решение для того же ...

driver.switchTo().frame("ext-gen298");
WebElement editable = driver.switchTo().activeElement();
editable.sendKeys("Your text here");
driver.switchTo().defaultContent();

Ссылка: http://code.google.com/p/seleniumwikiFrequentlyAskedQuestions#Q:_How_do_I_type_into_a_contentEditable_iframe?

3 голосов
/ 28 марта 2012

Это просто означает, что вы использовали какой-то плохой xpath.

selenium.selectFrame("xpath=//iframe[contains(@title,'Rich text editor')]");

Это должно работать.Он выбирает iframe на основе выражения xpath, которое ищет iframe, атрибут заголовка которого содержит «Rich text editor».

Подробнее о xpath см. XPath v1.0 на w3.org XPath v2.0 на w3.org - только для некоторых браузеров .

Кстати, iframe также может быть выбран селекторами css, даже если ему не назначен css.Селектор может выбрать любой элемент на основе его положения в древовидной иерархии и его атрибутов - аналогично XPath.Чтобы узнать о css selector, попробуйте снова w3 или wikipedia

0 голосов
/ 13 ноября 2013
  1. Сначала выберите кадр,
  2. Затем щелкните по нему, чтобы отделить информацию заголовка (WSYWG) от текстовой области,
  3. Затем сфокусируйтесь на текстовой области (tinymce)
  4. Затем отправьте свой текст для заполнения поля (у нас есть 2 примера, чтобы показать различные объекты, которые работают)
  5. Затем выберите Window обратно в окно по умолчанию (null)

Вот что я использовал, чтобы работал:

<td>selectFrame</td>
<td>xpath=//*[contains (@id, 'mce_0_ifr')]</td>
<td></td>

<td>click</td>
<td>xpath=//*[contains (@id, 'tinymce')]</td>
<td></td>

<td>focus</td>
<td>xpath=//*[contains (@id, 'tinymce')]</td>
<td></td>

<td>sendKeys</td>
<td>xpath=//*[contains (@id, 'tinymce')]</td>
<td>I Typed in an iFrame!!!</td>

<td>sendKeys</td>
<td>css=body#tinymce.mceContentBody</td>
<td>0</td>

<td>selectWindow</td>
<td>null</td>
<td></td>
...