How to select value from Dropdown without using Select class, Becuase in have dropdown as listbox in the span not select?

扶醉桌前 提交于 2019-12-12 02:44:44

问题


My HTML code is here:
    <fieldset>
<div class="clearfix">
<div class="clearfix">
<div class="clearfix">
<div class="clearfix">
<div class="qs-formfield-short qs-required">
<label for="stateCountry">State or Province</label>
<span class="k-widget k-dropdown k-header" style="" title="" unselectable="on" role="listbox" aria-haspopup="true" aria-expanded="false" tabindex="0" aria-owns="stateCountry_listbox" aria-disabled="false" aria-readonly="false" aria-busy="false">
<span class="k-dropdown-wrap k-state-default" unselectable="on">
<span class="k-input" unselectable="on">Please Select...</span>
<span class="k-select" unselectable="on">
<span class="k-icon k-i-arrow-s" unselectable="on">select</span>
</span>
</span>

My Code is here:

WebElement stateDropDown = driver.findElement( By.xpath("/html/body/form/div[3]/main/div/div/div/span/div/fieldset/div[4]/div[1]/span/span[1]")); List options = stateDropDown.findElements(By.xpath("/html/body/div[1]/div/ul/li[44]"));

    for(WebElement opt : options){
        if ("Texas".equals(opt.getText()));
        opt.click();
        System.out.println(opt);

回答1:


Try smth like this:

Actions action = new Actions(driver);    
WebElement optionsList = driver.findElement(By.xpath("//span[contains(@class, 'k-dropdown-wrap')]"));
action.moveToElement(optionsList);

List<WebElement> options = driver.getElemets(By.xpath("//span[contains(@class, 'k-input')]"));
for(WebElement option : options) {
    if (option.getText().equals("Texas")) {
        option.click();
    }
}

Stop writing strange xpath to elements :)



来源:https://stackoverflow.com/questions/36848352/how-to-select-value-from-dropdown-without-using-select-class-becuase-in-have-dr

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!