0

请帮助我阅读 Salesforce 应用程序中的“目标类型”下拉列表中的所有值列表:

HTML:

<select id="00N20000002gQI3" name="00N20000002gQI3" tabindex="3">
    <option value="">--None--</option>
    <option value="Asset Finance">Asset Finance</option>
    <option value="Barcap">Barcap</option>
    <option value="Barclaycard">Barclaycard</option>
    <option value="Barclays Wealth">Barclays Wealth</option>
    <option value="BGI">BGI</option>
    <option value="Cash Management">Cash Management</option>
    <option value="DCM">DCM</option>
    <option value="Debt">Debt</option>
    <option value="Deposit">Deposit</option>
    <option value="ECM">ECM</option>
    <option value="ESHLA">ESHLA</option>
    <option value="Financial Need Assessment">Financial Need Assessment</option>
    <option value="FX">FX</option>
    <option value="Generic">Generic</option>
    <option value="Individual Relationship">Individual Relationship</option>
    <option value="M&amp;A">M&amp;A</option>
    <option value="Managing Impairment">Managing Impairment</option>
    <option value="Managing RWAs">Managing RWAs</option>
    <option value="Marketing">Marketing</option>
    <option value="Overall Relationship">Overall Relationship</option>
    <option value="RSG">RSG</option>
    <option value="Sales Finance">Sales Finance</option>
    <option value="Trade">Trade</option>
</select>

请让我知道如何读取下拉列表中存在的所有值...如果您可以共享代码,那将是一个很大的帮助。

4

3 回答 3

2

这是我以前使用的按值选择选项的方法:

public static void selectInDropdownByValue(WebElement we, String val) {
    Select dropDown = new Select(we);           
    List<WebElement> theseOptions = dropDown.getOptions();
    for(WebElement option:theseOptions){
        if(option.getAttribute("value").equals(val)){
            option.click();  
        }
    }   
}

有时,有一些菜单,这还不够。在这种情况下,您需要使用 WebDriver“操作”来物理移动鼠标并单击鼠标按钮。

于 2012-12-24T19:52:41.023 回答
1

您可以使用 Select 类的 getOptions 函数。遍历收到的 webelements 列表并调用 getText 以获取可见选项..类似

Select sel = new Select(driver.findElement("yourlocator");
List of WebElements lst = sel.getOptions();
//iterate list with getText
于 2012-12-24T12:16:46.817 回答
0

if you use this, it should return an array of all the option elements:

element_array = driver.findElement(By.xpath("//select[@id='00N20000002gQI3']/option"))

So you can just extract the text of each element from this array. There's no need to click on the elements.

element_array[1].text
element_array[2].text

and etc.

于 2012-12-28T19:33:44.947 回答