输入iframe firefox

时间:2012-11-02 18:58:39

标签: iframe selenium webdriver selenium-webdriver

我在java中使用Selenium Webdriver(第二个)

我想弄清楚如何在IFrame里面输入内容。现在,我是:

WebDriver driver = new FirefoxDriver(); Wait<WebDriver> wait = new WebDriverWait(driver, 30) wait.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector("#cke_contents_textarea1 iframe"))).sendKeys("Test Text");

html是: <td id="cke_contents_textarea1" class="cke_contents" style="height:200px" role="presentation"><iframe style="width: 657px; height: 100%; " frameborder="0" title="Rich text editor, textarea1, press ALT 0 for help." src="" tabindex="-1" allowtransparency="true"> </iframe> </td>

我已经编辑了很多代码,所以我可能错过了一些东西。

我已经确认光标出现在文本框内(当我选择不同的iframe时,光标也会移动) 是否有不同的代码可以在iframe中输入?

4 个答案:

答案 0 :(得分:1)

我很惊讶你看到光标而没有切换到iframe。 尝试这样做

driver.switchTo().frame(driver.findElement(By.id("frameId")));
//do your stuff
driver.switchTo().defaultContent();

答案 1 :(得分:1)

请参考示例代码:我用过的网站包含iFrame。 (注意:您必须在我们的网页源代码中确保包含(if))

WebDriver driver = new InternetExplorerDriver();
driver.get("http://www.packagemapping.com/example1.htm#.UJS4DFIerb8");

driver.switchTo().frame(driver.findElement(By.name("frame_track")));
System.out.println(driver.findElement(By.xpath("//*[@id='table2']/tbody/tr/td[3]/font")).getText());
driver.findElement(By.name("shipper")).sendKeys("DHL");

答案 2 :(得分:0)

用于在iframe中键入内容使用以下用于selenium Webdriver的Java代码。

driver.switchTo()。frame((WebElement)driver.findElement(By.xpath(&#34;在这里输入iframe的xpath&#34;))); driver.findElement(By.xpath(&#34; iframe文本框的xpath&#34;))。sendKeys(&#34; testing&#34;); 。driver.switchTo()defaultContent();

答案 3 :(得分:0)

这是因为元素没有完全加载。在我的情况下,在sendKeys之前放置Thread.sleep(1000)就可以了。

 WebElement iFrameElmnt = cntntPnlFrmWrpr.findElement(By.tagName("iframe"));
            driver.switchTo().frame(iFrameElmnt);
            WebElement inputText = driver.findElement(By.id("__o3id0"));
            Thread.sleep(1000);
            inputText.sendKeys("12344");