我想从列表中选择一个DropDown但是HTML没有select标签我不确定我应该使用Select class还是

时间:2017-12-13 12:26:17

标签: selenium

我是selenium的新手,我想执行一项简单的任务,我想从标签中选择一个下拉菜单,并使用“http://www.spicejet.com/”作为参考。 在网页spicejet.com中有一个标签“附加组件”,它包含下拉值我想从列表中选择任何一个值。 HTML代码没有select标签,因此选择类不会给我合适的结果。

以下是HTML代码:

<a href="javascript:void(0);" id="highlight-addons" class="">Add-Ons<span class="rightarrowclass">&nbsp;</span><span class="rightarrowclass">&nbsp;</span></a>
<li><a href="SpiceClubMembershipOffer.aspx">SpiceClub Membership Offer</a></li>
<li id="ctl00_lblSpiceClublink">
                                                <a id="ctl00_lblSpiceClub" href='javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$lblSpiceClub", "", false, "", "SpiceClub.aspx", false, true))'>SpiceCash/SpiceClub</a></li>
<li><a href="http://book.spicejet.com/SpiceMoneyTopup.aspx">SpiceCash Topup </a></li>
<a href="http://book.spicejet.com/RetrieveBooking.aspx?AddSeat=true">SpiceMax </a>

请帮助我告诉我如何前进。

2 个答案:

答案 0 :(得分:1)

它不是一个下拉列表。它是一个菜单,您可以使用Actions类来选择所需的子菜单。使用下面的代码:

Actions action = new Actions(driver);
action.moveToElement(driver.findElement(By.id("highlight-addons"))).clickAndHold(driver.findElement(By.xpath("//li/a[contains(text(),'SpiceMax')]"))).click().build().perform();

答案 1 :(得分:1)

要从DropDown中选择一个值,您必须先 Mouse Hover WebElement ADD-ONS ,然后选择 SpiceClub Membership Offer ,您可以使用以下代码块:

WebElement elem = driver.findElement(By.xpath("//a[@id='highlight-addons']"));
Actions action = new Actions(driver);
action.moveToElement(elem).perform();
List<WebElement> items = driver.findElements(By.xpath("//ul[@class='add-ons-tab']/li/a"));
for(WebElement myitem:items)
{
    if(myitem.getAttribute("innerHTML").contains("Membership"))
    {
        myitem.click();
        break;
    }
}