我想点击子菜单中的删除。
我尝试了以下代码,但没有任何反应。
wd_handle.execute_script("document.getElementById('optionPanel').hidden=false;")
mouse.move_to_element(OptionPanel).perform()
WebDriverWait(wd_handle,10)
wd_handle.find_element_by_partial_link_text('Delete').click()
<div id="optionPanel" style="height: auto; width: auto; left: 126px; top: 368px; display: none; overflow-y: hidden;">'
<div class="wrapper">
<ul aria-hidden="false" role="menu">
<li role="menuitem">
<li role="menuitem">
<li class="divider" role="menuitem">
<a class="optionPanelLink" tabindex="0"
href="#playlistManager/action=delete/selected=701f55af-c5f0-4f31-b34f-964f52be5fef/idx=0">
Delete</a>
</li>
</ul>
</div>
</div>
我必须点击id为= 7ba9b231-5fc4-448b-b41a-f236437c182cCount的元素才能使上述元素可见。
<li class="playlist viewing">
<a id="7ba9b231-5fc4-448b-b41a-f236437c182cLink" class="ellipsis" title="TestList2" href="#playList/name=TestList2/list=7ba9b231-5fc4-448b-b41a-f236437c182c">TestList2</a>
<span class="entryCount">0</span>
<a id="7ba9b231-5fc4-448b-b41a-f236437c182cCount" class="customPlaylistSpriteLocation optionSprite" href="#option/playlist=TestList2/selected=7ba9b231-5fc4-448b-b41a-f236437c182c/idx=0"></a>
</li>
答案 0 :(得分:4)
您可以使用xpath
单击隐藏的菜单项import org.openqa.selenium.interactions.Actions;
Actions builder = new Actions(driver);
builder.moveToElement(driver.findElement(By.xpath("Enter Menu here"))).build().perform();
builder.moveToElement(driver.findElement(By.xpath("Enter Target here"))).build().perform();
driver.findElement(By.xpath("Enter Target here")).click()
希望这是代码
答案 1 :(得分:0)
您确定find_element_by_partial_link_text('Delete')
有效并返回元素吗?
如果它确实无效,我建议使用cssSelector,如:"li.divider a"
告诉我发生了什么事。
答案 2 :(得分:0)
替换:
wd_handle.execute_script("document.getElementById('optionPanel').hidden=false;")
使用:
wd_handle.execute_script("document.getElementById('optionPanel').style.display='block';")
如果它不起作用,那么尝试使用它们(一个接一个)......
答案 3 :(得分:-1)
首先检查你的子菜单项,在哪个地方删除按钮突出显示......使用悬停。并将其作为参考wrt id,你可以点击删除按钮...这里是一个代码
WebElement wb=driver.findElement(By.xpath("//li[@datapostid='52f377a10a1de86e33f9bc90']/div"));
Actions act=new Actions(driver);
act.moveToElement(wb);
act.perform();
driver.manage().timeouts().implicitlyWait(20,TimeUnit.SECONDS);
wb.findElement(By.cssSelector("span.commdelete")).click();