<div class="span3">
<div>
LSP Account<br>
<span title="" class="k-widget k-dropdown k-header" unselectable="on" role="listbox" aria-haspopup="true" aria-expanded="false" tabindex="0" aria-owns="cboAccountSettings_listbox" aria-disabled="false" aria-busy="false" aria-activedescendant="7245f0ab-5ba4-4c7b-b722-6c204d700e9f" style="width: 98%;">
<span unselectable="on" class="k-dropdown-wrap k-state-default">
<span unselectable="on" class="k-input">Any</span>
<span unselectable="on" class="k-select">
<span unselectable="on" class="k-icon k-i-arrow-s">select</span></span></span>
<select id="cboAccountSettings" style="width: 98%; display: none;" data-value-primitive="true" data-bind="value: SWO_Id" data-role="dropdownlist">
<option value="" selected="selected">Any</option>
<option value="SWO-ARG">SoftwareONE ARG</option>
<option value="SWO-AUS">SoftwareONE AUS</option>
<option value="SWO-BOL">SoftwareONE BOL</option>
<option value="SWO-BRA">SoftwareONE BRA</option>
<option value="SWO-CAN">SoftwareONE CAN</option>
<option value="SWO-CHL">SoftwareONE CHL</option>
<option value="SWO-COL">SoftwareONE COL</option>
<option value="SWO-CRI">SoftwareONE CRI</option>
<option value="SWO-DOM">SoftwareONE DOM</option>
<option value="SWO-ECU">SoftwareONE ECU</option>
<option value="SWO-EMEA">SoftwareONE EMEA</option>
<option value="SWO-GTM">SoftwareONE GTM</option>
<option value="SWO-HKG">SoftwareONE HKG</option>
<option value="SWO-HND">SoftwareONE HND</option>
<option value="SWO-IDN">SoftwareONE IDN</option>
<option value="SWO-JAM">SoftwareONE JAM</option>
<option value="SWO-JPN">SoftwareONE JPN</option>
</select>
</span>
</div>
</div>
1)我可以使用以下命令点击标签,但无法选择该项目:
driver.FindElement(By.CssSelector("span[aria-owns='cboAccountSettings_listbox']")).Click();
2)我也使用了这个代码,但是找不到特定的元素:
var LSPAccount = WebBrowser.FindElement(By.CssSelector("span[aria-owns='cboAccountSettings_listbox']"));
Thread.Sleep(1000);
var selectElement = new SelectElement(LSPAccount);
Thread.Sleep(1000);
selectElement.SelectByValue("SWO-ARG");
3)我也试过了,但是没有成功:
var xpath = "//span[contains(@class,'k-widget k-dropdown k-header')][contains(@id,'cboAccountSettings')][contains(text(),'SoftwareONE ARG')]";
var admi = WebBrowser.FindElement(By.XPath(xpath));
Thread.Sleep(1000);
admi.Click();
发布于 2018-08-19 22:38:49
您可以尝试执行以下操作:
//get the select html element
var selectList = driver.FindElement(By.Selector("select#cboAccountSettings"));
//wrap it inside webdriver's SelectElement and select option with value "SWO-ARG"
var selectElement = new SelectElement(selectList);
selectElement.SelectByValue("SWO-ARG");
SelectElement需要表示html select的IWebElement。另外,请检查目标选择元素是否不在某个框架内。在这种情况下,首先切换到目标帧。
发布于 2018-08-20 05:17:04
Select元素不可见,这就是问题所在。您可以使用javascript选择选项(Java):
String option = "SWO-ARG";
((JavascriptExecutor) driver).executeScript("arguments[0].selected='selected';", driver.findElement(By.cssSelector("#cboAccountSettings option[value='" + option + "']")));
也可以尝试这样做:
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].removeAttribute('selected');", driver.findElement(By.cssSelector("#cboAccountSettings option[selected]")));
js.executeScript("arguments[0].setAttribute('selected', 'selected');", driver.findElement(By.cssSelector("#cboAccountSettings option[value='SWO-ARG']")));
https://stackoverflow.com/questions/51918543
复制相似问题