我在一个页面上选择了一个大问题。
代码:
<select name="fw3k_ad_input_et_type_group" class=""
id="_id_fw3k_ad_input_et_type_group"
onchange=" eurotax.change_type_group( this.value ); "
style="display: none; ">
<option value="0"> --- odaberite tip --- </option>
<option value="-1" class="special">> nema mog tipa </option>
<option value="16390">CD</option>
<option value="17605">S</option>
<option value="17636">SE</option>
</select>
<a href="" class="fs_item" id="fs_item_0" style=""> --- odaberite tip --- </a>
查看:
http://imageshack.us/f/7/screenshotfrom201209111.png/
选择隐藏,href =“”是可见部分,根据所选选项更改其文本。
我真的不知道如何管理它。我可以使用JavascriptExecutor获得所有选项,我可以使用a.click()查看下拉框,但我不知道如何点击某个选项。
我尝试使用Select类和.getOptions()方法,但它不能用于隐藏选择,我无法更改href =“”文本。
:(
请帮我举一些例子。
答案 0 :(得分:3)
第一种方式: 使用相同的js单击任何元素不是问题。如您所知,如何获取任何选项,最后的操作是执行单击。 这应该适合你:
WebElement hiddenWebElement =driver.findElement(By(..selector of the element....));
((JavascriptExecutor)driver).executeScript("arguments[0].click()",hiddenWebElement);
第二路:
String cssSelector= ...//i gave them in your previous question
JavascriptExecutor js = (JavascriptExecutor) driver;
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("var x = $(\'"+cssSelector+"\');");
stringBuilder.append("x.click();");
js.executeScript(stringBuilder.toString());
第三种方式: 使用操作构建器,高级用户操作API。你可以阅读它here 代码就像那样:
WebElement mnuElement;
WebElement submnuElement;
mnEle = driver.findElement(By.Id("mnEle")).click();
sbEle = driver.findElement(By.Id("sbEle")).click();
Actions builder = new Actions(driver);
// Move cursor to the Main Menu Element
builder.moveToElement(mnEle).Perform();
// Giving 5 Secs for submenu to be displayed
Thread.sleep(5000L);
// Clicking on the Hidden SubMenu
driver.findElement(By.Id("sbEle")).click();
您还可以获得一些其他信息here 希望这能以某种方式帮助你)
答案 1 :(得分:2)
对这个问题有点困惑,但你试过吗
WebElement element = driver.findElement(By.id("fw3k_ad_input_et_type_group"));
Select select = new Select(element);
然后使用
select.selectByValue(value);
select.selectByVisibleText(text);
select.selectByIndex(index);
答案 2 :(得分:1)
driver.findElement(By.name("_id_fw3k_ad_input_et_type_group")).sendKeys("16390");
为我做了非常相似的事情。