href定位器仅在Selenium中不能用于一个元素

时间:2014-12-03 16:20:16

标签: java selenium xpath webdriver

我一直在写一些selenium脚本,我从下拉列表中选择一些选项。当我将鼠标悬停在父列表上时,它会显示一个孩子列表,我可以从中选择一个选项。这个功能对很多元素都很好,但我有一个导致'ElementNotVisibleException'。

我附上了我一直使用的代码的2个例子。最好的方法是工作,但第二个方法我遇到问题。如果有人可以帮助我为什么会收到这个错误,我将不胜感激。

WORKS

    public static void creditNoteReportFocus(InternetExplorerDriver driver)
{
    driver.findElement(By.xpath("//a[contains(@href, 'CreditNoteReport')]")).sendKeys(Keys.ENTER);
}

不工作

public static void earlySettlementWorkflowFocus(InternetExplorerDriver driver) throws InterruptedException
{
    driver.findElement(By.xpath("//a[contains(@href, 'EarlySettlementMatch?StartUpView=0')]")).sendKeys(Keys.ENTER);
}

SCREENSHOT enter image description here

HTML代码链接

<div class="inner">
    <img alt="barney" runat="server" src="/DibsAndrew/images/chinook/gfx-topnav-left.gif"/>
    <ul class="drop-down-menu sub-nav">
        <li>
        <li>
        <li>
        <li>
            <a class="highlighted" href="/DibsAndrew/CCLReports/Overall">Reports</a>
            <ul id="ddm-86476" style="display: block;">
                <li>
                <li>
                    <a class="highlighted" href="#">Collections</a>
                    <span>»</span>
                    <ul style="display: block;">
                        <li>
                        <li>
                        <li>
                        <li>
                        <li>
                        <li>
                        <li>
                            <a class="highlighted"  href="/DibsAndrew/ETCalculator/EarlySettlementMatch?StartUpView=0">Early Settlement Workflow</a>
                        </li>

1 个答案:

答案 0 :(得分:1)

我必须使用绝对xpath来解决这个问题。