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

在Selenium WebDriver中处理jquery选项卡

容学林
2023-03-14

尝试使用Java和Selenium WebDriver来自动化我们的内部Web应用程序。

在其中的一个页面上,应用程序使用jquery ui选项卡和HTML相同,如下所示。

<div id="tabs" class="addressSelectionTabs ui-tabs ui-widget ui-widget-content ui-corner-all">
    <div id="verticalTabs" style="">
    <ul class="addressSelectionUl ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all">
        <li class="ui-state-default ui-corner-top">
            <a href="#Telephony">Landline 1</a>
        </li>
        <li class="ui-state-default ui-corner-top ui-tabs-selected ui-state-active">
            <a href="#TelephonyFeatures">Landline 2</a>
        </li>
        <li class="ui-state-default ui-corner-top">
            <a href="#Other">Others</a>
        </li>
    </ul>
    </div>
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

            driver.findElement(By.linkText("Landline 1")).click();

            List<WebElement> ll1 = driver.findElements(By
                    .xpath("//img[contains(@src,'/cmc/images/treeview/folder-closed.gif')]"));
            for (int i = 0; i < llf1.size(); i++)
            {
                llf1.get(i).click();
            }

driver.findElement(By.linkText("Landline 2")).click();

            List<WebElement> ll2 = driver.findElements(By
                    .xpath("//img[contains(@src,'/cmc/images/treeview/folder-closed.gif')]"));
            for (int i = 0; i < llf1.size(); i++)
            {
                llf1.get(i).click();
            }


            driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

            driver.findElement(By.linkText("Others")).click();

            List<WebElement> discount = driver.findElements(By
                    .xpath("//img[contains(@src,'/cmc/images/treeview/folder-closed.gif')]"));
            for (int i = 0; i < discount.size(); i++)
            {
                discount.get(i).click();
            }

共有1个答案

淳于涛
2023-03-14

我知道这是一篇老文章,但您考虑过使用XPath吗?我正在进行一组类似的测试,并且在选项卡之间切换和单击不同选项卡上的元素没有任何问题。显然,在单击选项卡而使该选项卡变为活动状态之前,您无法单击该选项卡上的元素。

所以您可以尝试在选项卡之间切换:

driver.findElement(By.Xpath("//a[@href='#Telephony']")).Click();
driver.findElement(By.Xpath("//a[@href='#TelephonyFeatures']")).Click();

此外,使用XPath,您可以在Firefox中使用Firebug/Firepath来检查Xpaths是否工作。

[FindsBy(How = How.Xpath, Using = "//a[@href='#Telephony']"] private IWebElement TelephonyTab;
public IWebElement ClickTelephonyTab()
{
   TelephonyTab.Click();
   return TelephonyTab;
}

因此,要在测试中切换选项卡,只需执行以下操作:

YourPage.ClickTelephonyTab();
 类似资料:
  • 我们有几个域对象具有可为空的字段。我们已经读到hibernate需要“raw”对象来正确映射它,所以我们的getter返回optionals。我们的域对象如下所示: 但现在我们在解决/绑定这些字段时遇到了问题。jspx文件。(显示和表单输入字段。)对于基本类型和字符串,我们可以通过定义自定义OptionalToStringConverter绕过这一点。 对其他域对象的可空引用仍然是一个问题。 我们

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

  • 首先,我阅读了“如何使用Spring MVC处理HTTP选项?”但答案似乎并不直接适用于Spring Boot。 看起来我应该这么做: 通过将dispatcherServlet的设置为 但是,考虑到我的代码中没有XML配置,也没有任何种类的初始化器类(在这个答案中提到),如何做到这一点呢? 在一个类中,我有一个这样的方法,它目前没有被调用。 Spring靴1.2.7。释放一个简单的设置与Sprin

  • 我将html写成 现在我希望如果选项是1,那么它应该被选择为 请帮帮我!!!

  • 问题内容: 我试图在项目中使用Java 8,为此我添加了jack编译器。 启用jack后,我开始对使用注释处理的库产生问题,并在网上查看,我读到我需要android studio 2.2和com.android.tools.build:gradle:2.2.0-alpha6来编译从注释生成代码的库。 我下载了Android Studio 2.2预览版6,然后将项目转换为它。之后,我发现不再支持ap

  • 我正在创建一个android应用程序的学校目录,并希望打开他们的详细信息在新的页面上点击它从列表视图。我该怎么处理?