首页 文章

Selenium JUnit下拉范围项目

提问于
浏览
0

我是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>
  • 我尝试使用以下代码打开列表:driver.findElement(By.xpath(“/ html / body / div [7] / div [3] / div [4] / div [2] / div 1 / div [2] / DIV / DIV / Span [3] / b“))点击();但是当我从Eclipse运行测试时,它成功完成,但我没有看到列表打开 . 有没有办法从这里继续并从列表中选择一个项目?

  • 我尝试使用选择选项:选择选择=新选择(driver.findElement(By.xpath(“/ html / body / div [6] / div [3] / div [4] / div [2] / div 1 / div [2] / div / div / span [3] / span [text()= 'View'] "))); But recieved the following error: org.openqa.selenium.support.ui.UnexpectedTagNameException: Element should have been " select " but was " span“

我非常感谢你的评论 .

谢谢

1 回答

  • 0

    假设id(yiu- *)是动态的,我使用的是CSS Selector . 请尝试以下代码:

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

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

相关问题