2016-09-02 1 views
1

Я хочу скопировать текст внутри iframe с помощью watir webdrive и распечатать его. iframe находится внутри div. Ифрейм и div имеют идентификатор.Копирование и печать текста внутри iframe с помощью watir webdriver

<div id="sitbReaderKindleSample" style="visibility: visible; width: 497.5px; height: 18138px;"> 
    <iframe id="sitbReaderFrame" scrolling="no" frameborder="0" style="height: 17945px;"> 
</div> 

мой код

targetURL = "https://www.amazon.in/Secret-Druids-Christopher-C-Doyle- ebook/dp/B01BMD4JF0?ie=UTF8&qid=1472664339&ref_=lp_1318158031_1_2&s=books&sr=1" 

browser.goto targetURL 
browser.image(:id => "ebooksSitbLogoImg").click 
itext = browser.div(:id => 'sitbReaderKindleSample').text 
puts itext 

ВЫВОД является

Конец этого образца Kindle книги. Наслаждался превью? Купить

или даже:

Подробнее для этой книги в Kindle Store

, но я не нуждаюсь в этом. Это извне iframe. Мне нужен текст внутри iframe.

Я попытался

itext = browser.iframe(:id => 'sitbReaderFrame').text 

его выход пустой

Нужна помощь, чтобы напечатать текст внутри фрейма

я использую RubyMine IDE

enter image description here

ответ

1

Вы правильно делаете:

browser.iframe(:id => 'sitbReaderFrame').text 

Если вы получаете пустой String, это означает, что вы используете старую версию Watir:

  • В Watir-WebDriver v0.9.1 (и ранее): iframe.text возвратил текстовые узлы элемента iframe, который всегда ничего.
  • В Watir-Webdriver v0.9.2 (и позже): iframe.text был изменен, чтобы перейти в контекст iframe, а затем вернуть его текст body (это то, что вы хотите).

Вы должны убедиться, что используете самую последнюю версию.

+0

он работает после обновления и с использованием when_present (90 – Ariful

0

IText = брАузЕр .iframe (: id => 'sitbReaderFrame'). body.t ext

Это работает для меня, добавляя тело в цепь.

Смежные вопросы