我需要将数据输入iframe
。我提到了
Typing in a IFrame with Selenium IDE
但selenium.selectFrame(<xpath>)
返回:Element not found error
并且没有为iframe
定义css。
使用firebug:
<iframe frameborder="0" allowtransparency="true" tabindex="0" src="" title="Rich text editor, templateWizardCKEditor1, press ALT 0 for help." style="width: 100%; height: 100%;"/>
有什么可以解决这个问题?
答案 0 :(得分:6)
我找到了相同的解决方案......
driver.switchTo().frame("ext-gen298");
WebElement editable = driver.switchTo().activeElement();
editable.sendKeys("Your text here");
driver.switchTo().defaultContent();
答案 1 :(得分:3)
这只是意味着你使用了一些糟糕的xpath。
selenium.selectFrame("xpath=//iframe[contains(@title,'Rich text editor')]");
这应该有效。它根据xpath表达式选择iframe,该表达式查找iframe,其中title属性包含“Rich text editor”。
有关更多x路径,请参阅XPath v1.0 on w3.org和XPath v2.0 on w3.org - only for some browsers。
顺便说一句,iframe也可以由css选择器选择,即使它没有分配css。选择器可以根据它在树层次结构中的位置和它的属性来选择任何元素 - 类似于XPath。要了解css选择器,请尝试The w3 again或wikipedia
答案 2 :(得分:0)
以下是我用过的方法:
<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>