我想选择一个 iframe 并在“ 正文”中 输入值。我正在尝试以下代码。
HTML代码:
<iFrame id="4564654_content_ifr"> <html> <head> <body id="tiny"> <div aria-lable="New Compose body"> <br> </div> </body> </head> </html> </iFrame>
selenium代码:
driver.switchTo().frame(driver.findElement(By.xpath("//iframe[contains(@id,'content_ifr')]"))); driver.findElement(By.xpath("//*[@id='tiny']/div[1]")).sendKeys("Happy New IFrame");
但是我无法输入值。
有人可以帮我吗?
无需发送密钥,您可以innerHTML直接进行设置。
innerHTML
driver.switchTo().frame(driver.findElement(By.xpath("//iframe[contains(@id,'content_ifr')]"))); WebElement body = driver.findElement(By.cssSelector("body")); (JavascriptExecutor)driver.executeScript("arguments[0].innerHTML = 'Happy New IFrame'", body);
如果您要测试诸如TinyMCE之类的WYSIWYG编辑器,请随时阅读以下文章:
使用Selenium WebDriver测试所见即所得的编辑器
然后,您可以直接通过编辑器的API设置内容。已知sendKeys在Firefox中存在问题,但对于Chrome或PhantomJS应该没问题。
sendKeys