【问题标题】:Selenium link for image list based on image name or link name基于图像名称或链接名称的图像列表的 Selenium 链接
【发布时间】:2014-10-05 08:45:56
【问题描述】:

我有一个由

构建的菜单功能区
  • 标签,子列表被隐藏,直到上级列表被点击。如何识别此图像的目标以便我可以单击它?
    <li class="rbnsel">
        <div class="rbl" href="option/index?lfeCyc=Active">
            <img src="../icn/op.png">
            </img>
            Options
        </div>
    

    Selenium IDE 无法识别图像和链接(超出较高列表项),我已尝试:

    css=rbl:contains('option')
    

    和

    xpath=//span[url()='option/index?lfeCyc=Active']
    

    我应该使用什么来识别目标的建议将不胜感激。

    编辑:

    我已经添加了触发要创建的链接的 javascript.. 所以我的 Selenium IDE 表源如下..

    <tr>
    <td>selectWindow</td>
    <td>null</td>
    <td></td>
    </tr>
    <tr>
    <td>click</td>
    <td>link=Publish</td>
    <td></td>
    </tr>
    <tr>
    <td>runScript</td>
    <td>var path = $(this).attr('href'); if (e.which == 1 &amp;&amp; !e.ctrlKey) {window.location = getCsBaseUrl() + &quot;/&quot; + path;} else {csNewWindow(path);</td>
    <td></td>
    </tr>
    <tr>
    <td>MouseOver</td>
    <td>//div[contains(@class, 'rbl') and text()='Options']</td>
    <td></td>
    </tr>
    <tr>
    <td>click</td>
    <td>//div[contains(@class, 'rbl') and text()='Options']</td>
    <td></td>
    </tr>
    

    我想也许我的序列或代码是错误的,我已经尝试了所有可能的组合但没有运气。

  • 【问题讨论】:

    • 这是一个
      标签,你为什么在你的xpath表达式中使用?
    • 是的,我明白你的意思,我的错。 //div[contains(@class, 'rbl') 和 text()='Options'] 似乎有效,但点击链接还没有成功..

    标签: selenium selenium-ide


    【解决方案1】:
    WebElement we = driver.findElement(By.cssSelector("div.rbl img"));
    

    那你就可以了

    string attr = we.getAttribute("src");
    

    希望有帮助

    【讨论】:

    • 谢谢@bcar,我正在使用 Selenium IDE,我的新手理解 WebElement 是用于 WebDriver 编码的——对吗?我已经确定使用以下目标条目可以正确找到我需要的图像: //div[contains(@class, 'rbl') and text()='Options'] 但是 mouseOver 和 click 命令不足以执行链接,我怀疑我必须解决一些javascript...嗯
    • WebElement 暗示一个 dom 元素。您可能需要 JS 驱动程序才能单击,但如果您能够使用上面的 xpath 获取 web 元素,那么 id 假设您可以单击。你能发布更新的代码吗
    • 嗨@bcar,Selenium 正确地“找到”了图像,但点击似乎不起作用。可能需要您建议的 JS 驱动程序。这是 Selenium IDE 表的来源: MouseOver //div[contains(@class, 'rbl') 和 text( )='Options'] click //div[包含(@class, 'rbl') 和文本()='选项']
    【解决方案2】:

    我捏造了一个解决方案 - 但只是对有问题的链接使用 open 命令。它不是标准的 mouseover、mousedown 操作集,但它现在可以执行;-)

    ie 命令“打开”和目标:

    /option/index
    

    【讨论】:

      猜你喜欢
      相关资源
      最近更新 更多
      热门标签