List Selenium JUnit下拉列表范围项

List Selenium JUnit下拉列表范围项,list,selenium,junit4,List,Selenium,Junit4,我是Selenium和JUnit的真正初学者,尝试通过选择一个项目来验证下拉列表的功能。Selenium正在使用动态id记录它,因此当尝试重新运行它时,它找不到元素。 我在JUnit代码中尝试了几种方法,但似乎都做不好 这是一个视图下拉列表,其中第一项是主题 这是我的html: <div id="yui_3_16_0_1_1406046071286_1213" class="commontasks shaded"> <div id="pagetoolbar" class="

我是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.findElementBy.xpath/html/body/div[7]/div[3]/div[4]/div[2]/div/div[2]/div/div/div/span[3]/b; 但是当我从Eclipse运行测试时,它成功地完成了,但是我没有看到列表打开。有没有办法从这里继续并从列表中选择一个项目

我尝试使用选择选项: 选择Select=newselectdriver.findElementBy.xpath/html/body/div[6]/div[3]/div[4]/div[2]/div/div[2]/div/div/span[3]/span[text='View']; 但收到以下错误: org.openqa.selenium.support.ui.UnexpectedTagNameException:元素本应被选中,但被禁用

我非常感谢你的评论


谢谢

假设id yiu-*是动态的,我使用的是CSS选择器。请尝试以下代码:

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

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

非常感谢。我使用cssSelector的方式有点不同。因为我的页面工具栏有两个图标V形向下的图标,它工作了!driver.findElementBy.cssSelectorspanbtn-conv-view b.icon-chevron-down.click;driver.findElementBy.linkTextThemes.click;