当前位置: 首页 > 面试题库 >

如何使用Selenium WebDriver选择新的IFrame?

苍志文
2023-03-14
问题内容

我想选择一个 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直接进行设置。

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应该没问题。



 类似资料:
  • 问题内容: 我的网站上有一个选择控件。我正在使用页面对象与页面进行交互。如果我这样做(在我的课程下的前两行和我的方法中) 它以空指针失败。我也尝试了没有。 现在,如果我在我的方法中执行此操作,则一切正常,然后选择正确的项目 这是该控件的实际网页摘要(已编辑以保护无辜者) 让我说我可以解决我的问题, 但是 我不明白为什么“ 正常 ”路径无法正常工作。 问题答案: 那是因为该类具有以下构造函数: 见J

  • 我正在尝试创建java spark程序,并尝试使用 当我试图选择 它说不能再爱列名newColumn了。有人能帮我用Java怎么做吗?

  • 这是我正在使用的,用户代理可以成功设置,而下载首选项不能。 Windows 7、Chrome 26、Selenium-dotnet-2.31。2,chromedriver_win_26.0。1383 取自chromedriver。日志: 检查temp首选项文件在,没有设置和。

  • 问题内容: 我想使用Hibernate选择单列而不是整个对象。到目前为止,我有这个: 我的问题是上述代码将整个People表返回为一个对象,而不仅仅是“ firstname”。我不确定如何指定仅返回“名字”而不是整个对象。 问题答案: 您可以像这样设置投影: 有了这个,您只能得到名字的回报。 我在同一情况下在堆栈上找到了另一个链接。希望这也将对您有所帮助。

  • 问题内容: 我如何在seleniumwebdriver 3.0 beta版本中使用geckodriver。当我实例化Firefox时: 我得到错误: 线程“主”中的异常java.lang.IllegalStateException:驱动程序可执行文件的路径必须由webdriver.gecko.driver系统属性设置;否则,必须执行以下操作:有关更多信息,请参见 https://github.co