我要使用Selenium Webdriver和Java,从显示在“输入”标签而不是“选择”标签内的列表中选择一个选项。
请找到以下详细信息-
GUI如下- Please find the GUI image here
<td nowrap="" valign="middle" colspan="3" rowspan="1">
<div class="mceGridField siebui-value mceField">
<input type="text" name="s_6_2_158_0" value="" aria-labelledby="BGC_Type_Label" aria-label="Type" style="height: 24px; width:80px;" class="siebui-ctrl-select siebui-input-popup siebui-align-left siebui-input-align-left ui-autocomplete-input" aria-describedby=" s_6_2_158_0_icon" maxlength="30" tabindex="0" role="combobox" autocomplete="off" data-seq="0" aria-readonly="false">
<span class="siebui-icon-dropdown applet-form-combo applet-list-combo" id="s_6_2_158_0_icon" data-allowdblclick="true"></span></div>
</td>
GUI的选项列表如下- Please find the GUI image of option list after clicking
我正在使用以下代码从列表中选择一个选项-
driver.findElement(By.xpath("//*[@id='s_6_2_158_0_icon']")).click();
但是我仍然无法选择任何选项。 你能帮忙吗?
答案 0 :(得分:0)
您是否尝试过sendKeys
方法btw-
driver.findElement(By.xpath("//*[@id='s_6_2_158_0_icon']")).sendKeys("Fix");
最好使用id-
driver.findElement(By.name("s_6_2_158_0_icon")).sendKeys("Fix");
答案 1 :(得分:0)
要在列表中的所需选项上调用click()
,您需要诱使 WebDriverWait 使所需的元素可点击,您可以使用以下解决方案:
cssSelector
:
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("input[name^='s_'][aria-labelledby='BGC_Type_Label'][aria-label='Type']"))).click();
xpath
:
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//input[starts-with(@name,'s_')][@aria-labelledby='BGC_Type_Label' and @aria-label='Type']"))).click();