1

我在 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

4 回答 4

1

我很惊讶您在没有切换到 Iframe 的情况下看到光标。尝试这样做

driver.switchTo().frame(driver.findElement(By.id("frameId")));
//do your stuff
driver.switchTo().defaultContent();
于 2012-11-02T19:12:15.403 回答
1

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

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");
于 2012-11-03T07:27:10.150 回答
0

要在 iframe 中输入,请使用以下 Java 代码进行 selenium Webdriver。

driver.switchTo().frame((WebElement)driver.findElement(By.xpath("在此处输入iframe的xpath"))); driver.findElement(By.xpath("iframe 文本框的 xpath")).sendKeys("testing"); driver.switchTo().defaultContent();

于 2014-04-18T07:15:40.650 回答
0

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

 WebElement iFrameElmnt = cntntPnlFrmWrpr.findElement(By.tagName("iframe"));
            driver.switchTo().frame(iFrameElmnt);
            WebElement inputText = driver.findElement(By.id("__o3id0"));
            Thread.sleep(1000);
            inputText.sendKeys("12344");
于 2017-05-24T09:25:41.130 回答