如何从列表中选择下拉列表,但HTML没有使用Selenium Java的SELECT标记

2022-02-21 00:00:00 selenium xpath dropdown drop-down-menu java

我是Selenium的新手,我想执行一个简单的任务,我想从选项卡中选择一个下拉列表,并且我使用了"http://www.spicejet.com/"作为参考。 在网页spicejet.com中有一个选项卡"Add-On",它包含下拉值,我想从列表中选择任何一个值。 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>

请告诉我如何前进。


解决方案

要从DropDown中选择值,必须先Mouse HoverWebElementADD-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;
    }
}

相关文章