我在这里结束了我的智慧。我假设我做错了什么但我不能为我的生活找出了什么。
我有一个导航栏我试图将鼠标悬停在主要元素上,导致下拉菜单展开,然后单击IEx86中的子元素。这看起来很简单吧?
HTML(通用版):
<nav class="navHeader">
<ul class="topNavigation">
<li class="firstItem"><a href="/Home">Home</a></li>
<li class="current"><a href="javascript:void(0)">Transactions</a>
<ul style="display: block;">
<li class=""><a class="tabbedTransactions" href="/Transaction/#li1">li1</a></li>
<li class=""><a class="tabbedTransactions" href="/Transaction/#li2">li2</a></li>
<li class=""><a class="tabbedTransactions" href="/Transaction/#li3">li3</a></li>
<li class=""><a class="tabbedTransactions" href="/Transaction/#li4">li4</a></li>
<li class=""><a class="tabbedTransactions" href="/Transaction/#li5">li5</a></li>
<li class="current bottomSubNav"><a href="/li6/" class="current bottomSubNav">li6</a></li>
</ul>
</li>
</ul>
</nav>
我想到的会起作用(如果我在代码运行时将我的ACTUAL光标悬停在Transaction元素上)(WebElements都是通过xpath找到并传入的,xpath已经过验证一个插件)(驱动程序是WebDriver和类的公共部分)
public void HoverClick(WebElement hover, WebElement click)
{
Actions actions = new Actions(driver);
actions.moveToElement(hover).click(click).build().perform();
}
.moveToElement似乎没有移动到所以因此无法点击。 (甚至没有扩展navBar项目的闪烁)
public void HoverClick(WebElement hover, WebElement click)
{
Actions actions = new Actions(driver);
actions.moveToElement(hover).build().perform();
actions.click(click).build().perform();
}
有了这个,moveToElement移动到(navBar扩展)但.click(click)
失败。离开.perform()
的{{1}}不会导致行为发生变化。
moveToElement
有了这个,第一次public void HoverClick(WebElement hover, WebElement click)
{
Actions actions = new Actions(driver);
actions.moveToElement(hover).build().perform();
actions.pause(Duration.ofMillis(1000)).build().perform();
actions.click(click).build().perform();
}
。.pause()
- ed就会暂停。第二次(build().perform()
)没有停顿。
我不知道该怎么做。如上所述,如果我将我的实际鼠标悬停在nav元素上,那么代码执行就好了。请帮帮忙?
答案 0 :(得分:0)
以下作品:
public void HoverClick(WebElement hover, WebElement click)
{
Actions actions = new Actions(driver);
actions.moveToElement(hover).perform();
click.click();
}
使用.build().perform()
无效。这似乎导致“鼠标”悬停一次,然后再次盘旋并离开。
仅使用.build()
根本不起作用(并不惊讶,但想检查#QALife)。原来根本没用。这似乎是Selenium中的一个重要问题......