java - href 定位器在 Selenium 中不适用于仅一个元素

标签 java selenium xpath webdriver

我一直在编写一些 Selenium 脚本,从中我从下拉列表中选择一些选项。当我将鼠标悬停在父列表上时,它会显示一个子列表,我可以从中选择一个选项。此功能对于许多元素都运行良好,但我有一个导致“ElementNotVisibleException”。

我附上了我一直在使用的代码的 2 个示例。第一种方法有效,但第二种方法我遇到了问题。如果有人可以帮助我解释为什么我可能会收到此错误,我将不胜感激。

有效

    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);
}

屏幕截图 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>

最佳答案

我不得不使用绝对 xpath 来解决这个问题。

关于java - href 定位器在 Selenium 中不适用于仅一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27276625/

相关文章:

java - 设置 int 值会导致性能问题

selenium - Visual Studio Web 测试与 Selenium

java - Selenium java代码查找网页上H2标签的数量

xpath - 如何在 MarkLogic 6 中执行不区分大小写的匹配

xml - 如果属性值不等于某些值,如何获取它们?

java - 应用程序品牌 reshape - 何时应采用分支策略?

java - java多线程是否可以优化多文件写入

xml - 来自命令行的 Saxon-HE 9.6 的换行符分隔输出

java - 当我将 Retrofit2.0 与 POST 一起使用时, body 为 null ,但响应代码为 5xx?

ruby - Browsermob Proxy + Watir 不连续捕获流量