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>
我的代码在这里:
WebElement stateDropDown = driver.findElement(By.xpath(“ / html / body / form / div [3] / main / div / div / div / div / span / div / fieldset / div [4] / div [1] / span / span [1]“)); 列表选项= 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);
像这样尝试smth:
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(); } }
停止将奇怪的xpath写入元素:)