繁体   English   中英

Selenium WebDriver:Java:NoSuchElementException:无法找到元素:{“ method”:“ xpath”,“ selector”:“ // div [@ id ='manage_area'] / ul / li / div [2]”}

[英]Selenium WebDriver: Java: NoSuchElementException: Unable to locate element: {“method”:“xpath”,“selector”:“//div[@id='manage_area']/ul/li/div[2]”}

我很难与这个元素进行互动。 我使用了FirePath ,Selenium IDE和手动构建XPATH都无济于事。 我正在尝试与“团体事故”进行互动。 我可以使用driver.findElement(By.xpath("//div[@id='manage_area']/ul/li/div")).click(); Selenium来获取Selenium以检测“意外” driver.findElement(By.xpath("//div[@id='manage_area']/ul/li/div")).click();

我希望能够打开菜单,然后从“团体事故”中选择“添加或查看计划/选项”。 http://i.imgur.com/gHMaXLl.jpg

请帮忙! 谢谢。

这是我的代码:

@Test
  public void testAddEEBenefitsinCOLO() throws Exception {
    driver.get(baseUrl + "/bcs/stored.asp");
    driver.findElement(By.id("TBUserName")).clear();
    driver.findElement(By.id("TBUserName")).sendKeys("test");
    driver.findElement(By.name("TBPassword")).clear();
    driver.findElement(By.name("TBPassword")).sendKeys("pw1");
    driver.findElement(By.name("Login")).click();
    Thread.sleep(2000);
    driver.findElement(By.name("TBPARAM")).click();
    driver.findElement(By.name("TBPARAM")).clear();
    driver.findElement(By.name("TBPARAM")).sendKeys("colo1973");
    driver.findElement(By.name("TBPARAM")).sendKeys(Keys.ENTER);
    driver.findElement(By.id("QRY")).click();
    driver.findElement(By.id("QRY")).clear();
    driver.findElement(By.id("QRY")).sendKeys("Melvin");
    driver.findElement(By.name("B1")).click();
    Thread.sleep(5000);

    driver.findElement(By.xpath("//div[@id='manage_area']/ul/li/div[2]")).click();
    Thread.sleep(1000);

错误信息:

org.openqa.selenium.NoSuchElementException: Unable to locate element: {"method":"xpath","selector":"//div[@id='manage_area']/ul/li/div[2]"}
Command duration or timeout: 30.01 seconds

HTML:

<div class="spAbove">
</div>

<div class="tableholder" id="ben110119014" style="width: 99%">

        <form method="post" id="submitform110119014" action="EnrollChange.asp" name="ACCIDENT"
            onsubmit="JavaScript: return validateChangeType(this); ">
            <input type="hidden" name="TARGET" value="110119014" />

                    <h3>
                    <span onmouseover="javascript:showtip('BC110119014')">
                    Accident
                    </span>
                    <div id="manage_area" style="margin-left: -5px; visibility: hidden; display: inline;">
                        <a href="javascript:spawn_window('glossary.asp?PPVS=COLO1973#0','600','800','',0)"
                        title="What's this?">
                        <img src="images/help.gif" border="0"></a>
                    </div>

                    </h3>

                    <table class="textNormal sp" width="100%" border="0" cellspacing="0" cellpadding="0">
                        <tbody>
                        <tr>

                            <td class="tdata" valign="middle">
                                <input type="hidden" name="CHANGETYPE" id="Hidden1" value="0" />

                                    <div id="manage_area">
                                        <ul class="menuUL opMenu" title="Click here to view your options">
                                            <li class="menuLI width225">

                                            <div class="titleCell optImg" title="Click here to view your options">  

                                                <ul class="menuUL MainOptSubMenu">

                                                                <li class="menuLI"><a href="javascript: submitBenefit('16', 'submitform110119014'); "
                                                                value="16">
                                                                Add: Initial Population</a></li>

                                                                <li class="menuLI"><a href="javascript: submitBenefit('46', 'submitform110119014'); "
                                                                value="46">
                                                                Decline Benefit: (Prompt Effective)</a></li>

                                                                <li class="menuLI"><a href="javascript: submitBenefit('81', 'submitform110119014'); "
                                                                value="81">
                                                                Add or View Plan/Options</a></li>

                                                                <li class="menuLI"><a href="javascript: submitBenefit('64', 'submitform110119014'); "
                                                                value="64">
                                                                Decline Benefit</a></li>

                                                </ul>
                                            </div>
                                            </li>
                                        </ul>
                                    </div>

                            </td>
                        </tr>





                        </tbody>
                    </table>

        </div>
        <p align="right" class="backtotop">
            <a href="#PAGETOP">To Top</a></p>
        <input type="hidden" name="TRANSID" value="5327418">
        <input type="hidden" name="PPVS" value="COLO1973">
        <input type="hidden" name="HST" value="SITE,BENEFITS,">
        <input type="hidden" name="PF" value="BENEFITS">
        <input type="hidden" name="SK" value="140062328">
        <input type="hidden" name="BENCAT" value="ACCIDENT">
        <input type="hidden" name="CANCHANGE" value="">
    </form>

<div class="tableholder" id="ben167876400" style="width: 99%">

        <form method="post" id="submitform167876400" action="EnrollChange.asp" name="GRPACC"
            onsubmit="JavaScript: return validateChangeType(this); ">
            <input type="hidden" name="TARGET" value="167876400" />

                    <h3>
                    <span onmouseover="javascript:showtip('BC167876400')">
                    Group Accident
                    </span>
                    <div id="manage_area" style="margin-left: -5px; visibility: hidden; display: inline;">
                        <a href="javascript:spawn_window('glossary.asp?PPVS=COLO1973#0','600','800','',0)"
                        title="What's this?">
                        <img src="images/help.gif" border="0"></a>
                    </div>

                    </h3>

                    <table class="textNormal sp" width="100%" border="0" cellspacing="0" cellpadding="0">
                        <tbody>
                        <tr>

                            <td class="tdata" valign="middle">
                                <input type="hidden" name="CHANGETYPE" id="Hidden1" value="0" />

                                    <div id="manage_area">
                                        <ul class="menuUL opMenu" title="Click here to view your options">
                                            <li class="menuLI width225">

                                            <div class="titleCell optImg" title="Click here to view your options">  

                                                <ul class="menuUL MainOptSubMenu">

                                                                <li class="menuLI"><a href="javascript: submitBenefit('16', 'submitform167876400'); "
                                                                value="16">
                                                                Add: Initial Population</a></li>

                                                                <li class="menuLI"><a href="javascript: submitBenefit('46', 'submitform167876400'); "
                                                                value="46">
                                                                Decline Benefit: (Prompt Effective)</a></li>

                                                                <li class="menuLI"><a href="javascript: submitBenefit('81', 'submitform167876400'); "
                                                                value="81">
                                                                Add or View Plan/Options</a></li>

                                                                <li class="menuLI"><a href="javascript: submitBenefit('64', 'submitform167876400'); "
                                                                value="64">
                                                                Decline Benefit</a></li>

                                                </ul>
                                            </div>
                                            </li>
                                        </ul>
                                    </div>

                            </td>
                        </tr>





                        </tbody>
                    </table>

        </div>

你可以试试

driver.findElement(By.linkText("Add or View Plan/Options")).click();

要么

driver.findElement(By.xpath("//a[contains(.,'Add or View Plan/Options')]")).click();

按照HTML代码段,由于“添加或查看/计划选项”以上面2种形式出现,因此下面是单击“团体事故”的 “管理权益”下的一个的方法:

1-使用此代码单击“组事故”“管理权益”按钮,这样下拉列表可见:

driver.findElement(By.xpath("//form[@id='submitform167876400']//ul[@class='menuUL opMenu']")).click();

2-单击其下的“添加或查看/计划选项”子菜单项。

driver.findElement(By.xpath("//form[@id='submitform167876400']//a[contains(text(),'Add or View Plan/Options')]")).click();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM