我必须从下拉框中选择值,但要选择鼠标悬停所需的值以打开弹出窗口。
我正在使用sendKeys(“Body> Abdomen”)。 让我知道从下拉框中选择值的正确方法
按照第二个下拉框的HTML代码:
<div id="bodypart_box_1">
<div style="position:absolute;left:185px;z-index: 20">
<ul class="parent">
<li>
<div id="main" class="mailval">events=Object { click=[1]}handle=function()
<input id="bodypart_1" class="bodypart error" type="text"
onfocus="if($(this).hasClass('disabled')){$(this).blur();}" readonly="readonly"
value="Select One" name="bodypart_1" title="">
<input id="actualBodypart_1" type="hidden" value="" name="actualBodypart_1">
</div>
<ul id="bodyPartList_1" class="top sub bodyPartList" style="display:
block;">olddisplay="block"
<li class="">
<div class="mailval fly" title="Body" originaltitle="Body">Body</div>events=Object {
click=[1], mouseover=[1]}handle=function()
<ul style="display: block;">olddisplay="block"
<li class="">
<div class="mailval " title="Body > Abdomen" originaltitle="Body >
Abdomen">Abdomen</div>events=Object { click=[1], mouseover=[1]}handle=function()
</li>
<li class="">
答案 0 :(得分:0)
简单的答案是做这样的事情:
我在Etsy search example project上做了类似的事情,其中shows以Etsy动态搜索为例。
答案 1 :(得分:0)
基本上,您必须先将鼠标移动到“菜单项”下拉列表,然后将鼠标移动到要选择的选项,然后单击选项。
对于Ruby,以下是一行代码:
driver.action.movet_to(el1).movet_to(el2).click.perform
我不了解Java,但您可以应用上述逻辑。我尝试使用以下Java代码,看看它是否有效或在需要的地方修改它:
WebElement element1 = driver.findElement(By.linkText("Manage Channels"));
WebElement element2 = driver.findElement(By.xpath("//li/a[contains(., \"Manage Channels\")]"))
Actions action = new Actions(driver);
action.moveToElement(element1).moveToElement(element2).click().build().perform();
答案 2 :(得分:0)
您可以通过两种方式完成:
WebElement menu = driver.findElement(By.id("id"));
Actions builder = new Actions(driver);
builder.moveToElement(menu).moveToElement(driver.findElement(submenu)).click().build().perform();
您也可以点击使用JavascriptExecutor:
WebElement menu = ff.findElement(By.id("id"));
((JavascriptExecutor)ff).executeScript("$(arguments[0]).click();", menu);
您可以根据HTML代码更改代码。如果在浏览器中禁用了JS,JavascriptExecutor的代码将无效。