通过 watir webdriver 在 iframe 中复制和打印文本

Copy and print text inside iframe by watir webdriver

我想通过 watir webdrive 复制 iframe 中的文本并打印它。 iframe 位于 div 内。 iframe 和 div 都有 ID.

<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

输出是

End of this sample Kindle book. Enjoyed the preview? Buy now

甚至:

See details for this book in the Kindle Store

但我不需要这个。这是来自外部 iframe。我需要 iframe 中的文本。

我试过了

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

它的输出是空白的

需要帮助来打印 iframe 中的文本

我用红宝石矿IDE

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

这对我有用,将正文添加到链中。

你做对了:

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

如果您得到的是空的 String,这意味着您使用的是旧版本的 Watir:

  • 在 Watir-Webdriver v0.9.1(及之前的版本)中:iframe.text returned iframe 元素的文本节点,它始终为空。
  • 在 Watir-Webdriver v0.9.2(及更高版本)中:iframe.text 已更改为切换到 iframe 上下文,然后 return 其 body 文本(其中是你想要的)。

您应该确保您使用的是最新版本。