【问题标题】:How to handle form at src attribute inside fancybox frame with Selenium Webdriver Java?如何使用 Selenium Webdriver Java 在 fancybox 框架内的 src 属性处处理表单?
【发布时间】:2016-07-13 02:45:39
【问题描述】:

我正在尝试在表单内的文本字段中发送密钥。但是这个表格放在链接里。属性 src 指向该链接。

这是代码

我怎样才能到达链接内的文本字段,因为这个链接在 iframe 和 fancybox 中。

【问题讨论】:

  • 尝试列表 iframe = driver.findElements(By.cssSelector(iframeCSSselector)); System.out.println(iframe.size()); driver.switchTo().frame(iframe.get(0));
  • 我写了那些代码 List iframe; iframe = driver.findElements(By.cssSelector(".fancybox-iframe")); System.out.println(iframe.size()); driver.switchTo().frame(iframe.get(0));然后有错误消息要求我将这些代码包围起来,因为类型列表不带参数。
  • 请过去完整的错误日志
  • 线程“主”java.lang.RuntimeException 中的异常:无法编译的源代码 - 类型 java.awt.List 在 recipes.UploadProdukPopup.main(UploadProdukPopup.java:114) C:\ Users\Indotrading\AppData\Local\NetBeans\Cache\8.1\executor-sn-ps\run.xml:53:Java 返回:1 BUILD FAILED(总时间:50 秒)
  • 能不能越过框架的html行

标签: java selenium-webdriver popup fancybox


【解决方案1】:

您必须将驱动程序的焦点切换到 iFrame。您可以使用以下切换到 iFrame

driver.switchTo().frame(driver.findElement(By.id("ID of your iFrame")));

切换焦点后,您可以在表单中执行所需的操作,当您完成表单后,您必须使用以下内容从 iframe 切换回页面 -

driver.switchTo().defaultContent();

【讨论】:

  • 我已经切换了,但它仍然不起作用,因为表单在 src 中 link.Set s1=driver.getWindowHandles();Iterator i1=s1.iterator();while(i1 .hasNext()){String ChildWindow=i1.next();if(!s1.equals(ChildWindow)) {driver.switchTo().frame((WebElement) By.id("fancybox-frame1468307248480"));WebElement namaGroup = driver.findElement(By.id("txtProdukGroup"));namaGroup.sendKeys("Bunga Mawar");WebElement namaGroupEng = driver.findElement(By.id("txtProductGroupEnglish"));namaGroupEng.sendKeys("玫瑰花");WebElement btnSave =driver.findElement(By.id("btnAdd"));
猜你喜欢
  • 2012-04-14
  • 2023-04-11
  • 2018-08-28
  • 1970-01-01
  • 2016-04-01
  • 2011-11-13
  • 1970-01-01
  • 2012-01-04
  • 1970-01-01
相关资源
最近更新 更多