我在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中输入?
答案 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");