当前位置: 首页 > 知识库问答 >
问题:

如何使用硒选择框架?

欧阳勇
2023-03-14

我正在使用Java来创建硒测试用例。我的系统基于彼此连接的 Portlet。我正在使用“选择框架”命令来选择门户let。

我尝试了很多东西,但似乎它不是这样工作的:

driver.switchTo().frame("//iframe[contains(@src,'FUN_UnitList_FilterByLevelIndexOne')]");

driver.findElement(By.id("//iframe[contains(@src,'FUN_UnitList_FilterByLevelIndexOne')]"));

任何人都可以帮我吗?

共有3个答案

鲁城
2023-03-14

我们可以给出帧名称,ID,索引和Web元素定位器进行识别

语法:-

driver.switchTo().frames(); // Switch to window to frame

driver.switchTo().defaultContent();  // Switch to Frame to window

如果我们知道网页上的总帧数,那么我们可以使用“索引”。索引值有助于在帧之间轻松切换。索引将从零开始,即如果网页只有一个框架,那么它的索引将为零。如果我们不知道帧数,我们可以使用“findElementBytabname()”方法

语法:-

   try
{
   driver.switchTo().frame(indexnumber);
}
  catch(NoSuchFrameException e)
{
  System.out.println(e.getMessage());
}

如果现在框架不可用,我们必须使用try和catch。这个抛出异常NoSuchFrameException()

使用名称作为定位器来查找帧语法:-

 try
{
  driver.switchTo().frame(“frameName”);
}
  catch(NoSuchFrameException e)
{
  System.out.println(e.getMessage());
}

使用WebElement切换框架

语法:-

  try
{
  WebElement button=driver.findElement(By.xpath(""));
  driver.switchTo().frame(button);
}
  catch (NoSuchFrameException e)
{
  System.out.println(e.getMessage());
}
施永宁
2023-03-14
driver.switchTo().defaultContent();
driver.switchTo().frame(driver.findElement(By.xpath("//iframe[contains(@src,'FUN_UnitList_FilterByLevelIndexOne')]")));
戴瑞
2023-03-14

您有一个XPath表达式,它应该可以为您提供所需的IFrame元素。但是您没有告诉Selenium它是一个XPath表达式。以下是您需要的:

driver.switchTo().frame(driver.findElement(By.xpath("//iframe[contains(@src,'FUN_UnitList_FilterByLevelIndexOne')]"));

请注意,我的Java不是最好的,所以这可能会导致编译问题,但你应该看到这个想法。

首先找到元素,告诉Selenium它是一个XPath表达式,然后使用该元素并将其插入“切换到帧”表达式中。

 类似资料:
  • 问题内容: 我正在尝试使用Java和基于WebDriver的语法从硒的选择列表中选择一个元素。 我有选择列表 我怎么做? 问题答案: 如果速度较慢,请考虑类似

  • 问题内容: 我对英超联赛的数据感兴趣。因此,我尝试从此官方网站获取数据https://www.premierleague.com/stats/top/players/total_pass 我正在使用R和RSelenium包。 但是我遇到了一些问题。有一些类别的数据,例如季节,位置,俱乐部等。 因此,我认为我可以基于这些类别获取数据。但是我不知道如何在此站点中使用Rselenium在下拉框中选择特定

  • 问题内容: 我需要有关jQuery选择器的帮助。假设我有一个标记,如下所示: 除了用户单击时,如何获取所有复选框? 问题答案: 一个更完整的示例适用于您的情况: 当被点击复选框,该复选框的状态进行检查,并在当前形式的所有复选框被设置为相同的状态。 请注意,您无需从选择中排除该复选框,因为该复选框的状态将与其他所有复选框相同。如果出于某些原因确实需要排除,则可以使用以下方法:

  • 我正在使用JavaFx,我有一个用sceneBuilder创建的表视图,它包含3列,其中一列用于复选框,还有一个名为print\u tab的按钮,我想在单击此按钮时使用复选框选择行- 我读了许多关于回调复选框的表列的示例,但不知道如何做到这一点。 这是控制器: 在模型类上,我有以下代码: } fxml代码: 任何想法? 编辑: 我试过这样做,但即使我勾选了一些复选框,我总是得到错误的结果,不是真的

  • 问题内容: 我已经搜索过Google,但找不到任何东西。 我有这个代码。 有这样的数据 输出是这样的。 如何将数据中的第一个选项设置为默认值,这样您将得到这样的结果。 问题答案: 您可以像这样简单地使用ng-init

  • 问题内容: 我有下一个模板: 并将结果值存储在中。 如何将元素标记为PHP? 谢谢! 问题答案: 手动方式..... 更好的方法是遍历利益