从Selenium webdriver下拉列表中选择值的问题

问题描述 投票:-1回答:2

我试图从下拉列表中选择值。下面是登录屏幕上该下拉列表的HTML。

<div class="form-group">
<label for="j_companyname">Company</label>
<select id="j_companyname" name="companyname" size="1" onclick="onAccountLostFocus();" style="cursor: pointer;"><option value="AUTO_DEPLOYER">AUTO_DEPLOYER</option><option value="ES188CLIENT1">ES188CLIENT1</option><option value="ES188CLIENT10">ES188CLIENT10</option><option value="ES188CLIENT11">ES188CLIENT11</option><option value="ES188CLIENT12">ES188CLIENT12</option><option value="ES188CLIENT13">ES188CLIENT13</option><option value="ES188CLIENT14">ES188CLIENT14</option><option value="ES188CLIENT15">ES188CLIENT15</option><option value="ES188CLIENT16">ES188CLIENT16</option><option value="ES188CLIENT17">ES188CLIENT17</option><option value="ES188CLIENT18">ES188CLIENT18</option><option value="ES188CLIENT19">ES188CLIENT19</option><option value="Primatics">Primatics</option></select>
<img src="ui/img/ajax-loader.gif" style="margin: 3px; position: absolute; display: none;">
"

我试图通过不同的定位器定位元素,但无法选择任何值。我的脚本是:

if( driver.findElement(By.id("j_companyname")).isEnabled()){

    System.out.println("Element is Enable");

    WebElement select = driver.findElement(By.id("j_companyname"));
    List<WebElement> options = select.findElements(By.tagName("option"));
    for (WebElement option : options)
    {
        if("ES188CLIENT16".equals(option.getText()))
        //  option.click();
        option.submit();

    }
    }
    else{
        System.out.println("Element is Disabled");
    }

请帮忙。

selenium selenium-webdriver
2个回答
0
投票

请看下面的代码

       Select drpCountry = new Select(driver.findElement(By.id("j_companyname")));
                drpCountry.selectByVisibleText("ES188CLIENT16");

// these also can help you
                //drpCountry.selectByIndex("givenindex"); 
                //drpCountry.selectByValue("ES188CLIENT16");

0
投票

因为你是trying to select the value from the drop down,我们假设我们必须从下拉列表中选择AUTO_DEPLOYER。要从下拉列表中选择AUTO_DEPLOYER,可以使用以下代码块:

WebElement my_select = driver.findElement(By.id("j_companyname"));
Select select = new Select(my_select);
new WebDriverWait(driver, 5).until(ExpectedConditions.elementToBeSelected(By.xpath("//select[@id='j_companyname']//option[contains(.,'AUTO_DEPLOYER')]")));
select.selectByVisibleText("AUTO_DEPLOYER");
© www.soinside.com 2019 - 2024. All rights reserved.