【问题标题】:Selenium JUnit dropdown span itemSelenium JUnit 下拉范围项目
【发布时间】:2014-09-13 14:17:11
【问题描述】:

我是 Selenium 和 JUnit 的真正初学者,并尝试通过选择一项来验证下拉列表的功能。 Selenium 正在使用动态 id 记录它,因此在尝试重新运行它时,它找不到该元素。 我在我的 JUnit 代码中尝试了一些方法,但我似乎无法做到正确。

这是一个“视图”下拉列表,其中第一项是“主题”

这是我的html:

<div id="yui_3_16_0_1_1406046071286_1213" class="commontasks shaded">
  <div id="pagetoolbar" class="hasnomsg hideReplyGroup">
    <div id="match-messagelist-sizing">
       <span id="btn-ml-cbox" class="btn btn-hdr cbox collapse-end-space" tabindex="0"   aria-label="Select or deselect all messages [Ctrl+A]">
       <span id="btn-select-dd" class="btn neoFocusable enabled" aria-label="Select or deselect categorized messages" aria-haspopup="true" role="button" data-action="select-dd">
       <span id="btn-conv-view" class="btn btn-absolute btn-view-dd" data-action="menu" title="More view options" aria-haspopup="true" role="button">
         <span id="yui_3_16_0_1_1406046071286_1215" class="icon-text">View</span>
         <b id="yui_3_16_0_1_1406046071286_1212" class="icon icon-chevron-down"></b>
       </span>
   </div>
</div>
  1. 我尝试使用以下代码打开列表: driver.findElement(By.xpath("/html/body/div[7]/div[3]/div[4]/div[2]/div1/div[2]/div/div/span[ 3]/b")).click(); 但是当我从 Eclipse 运行测试时,它成功完成,但我没有看到列表打开。有没有办法从这里继续并从列表中选择一个项目?

  2. 我尝试使用 Select 选项: 选择 select = new Select(driver.findElement(By.xpath("/html/body/div[6]/div[3]/div[4]/div[2]/div1/div[2]/ div/div/span[3]/span[text() = 'View']"))); 但收到以下错误: org.openqa.selenium.support.ui.UnexpectedTagNameException:元素应该是“select”,但是是“span”

非常感谢您的 cmets。

谢谢

【问题讨论】:

    标签: list selenium junit4


    【解决方案1】:

    假设 id (yiu-*) 是动态的,我正在使用 CSS 选择器。试试下面的代码:

    driver.findElement(By.cssSelector("div#pagetoolbar b.icon-chevron-down")).click();
    

    对于第二个问题,您只能将 HTML 的 SELECT 元素用于 Select 类。正如错误清楚地表明您正在尝试在 SPAN 元素上使用它。

    【讨论】:

    • 非常感谢。我使用了 cssSelector(有点不同。因为我的页面工具栏有 2 个 icon-chevron-down 图标)并且它有效!
    • driver.findElement(By.cssSelector("span#btn-conv-view b.icon-chevron-down")).click(); driver.findElement(By.linkText("Themes")).click();
    猜你喜欢
    • 2021-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多