Html 无法从鼠标悬停的下拉框中选择值

Html 无法从鼠标悬停的下拉框中选择值,html,xpath,selenium,selenium-webdriver,Html,Xpath,Selenium,Selenium Webdriver,我必须从下拉框中选择值,但要选择值,需要鼠标悬停以打开弹出窗口 我正在使用sendKeysBody>腹部。 让我知道从下拉框中选择值的正确方法 下面是第二个下拉框的HTML代码: <div id="bodypart_box_1"> <div style="position:absolute;left:185px;z-index: 20"> <ul class="parent"> <li> <div id="main" class="mailv

我必须从下拉框中选择值,但要选择值,需要鼠标悬停以打开弹出窗口

我正在使用sendKeysBody>腹部。 让我知道从下拉框中选择值的正确方法

下面是第二个下拉框的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="">

简单的答案是这样做:

单击包含select容器的div,使用 元素。单击。 然后,以列表的形式获取select选项元素并进行迭代 使用el.getText或el.getAttributeid或 无论什么
我在我的上做了类似的操作,例如Etsy动态搜索。

基本上,您必须首先将鼠标移动到“菜单项”下拉列表,然后将鼠标移动到要选择的选项,然后单击该选项

对于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();

您可以通过两种方式进行:

WebElement menu = driver.findElement(By.id("id"));
Actions builder = new Actions(driver);
builder.moveToElement(menu).moveToElement(driver.findElement(submenu)).click().build().perform();
您还可以单击using JavascriptExecutor:

WebElement menu = ff.findElement(By.id("id"));
((JavascriptExecutor)ff).executeScript("$(arguments[0]).click();", menu);

您可以根据HTML代码更改代码。如果浏览器中禁用JS,JavascriptExecutor的代码将无法工作

此HTML无法正确呈现,因为许多标记未关闭,并且许多JavaScript未在正确的位置写入,因此呈现为纯文本。另外,您在Selenium WebDriver中使用的语言是什么?e、 JavaScript、Java、Ruby、C或Python?我用的是SeleniumWebDriver Java语言。