Actions action = new Actions(Driver);
action.MoveToElement(webelement).ClickAndHold().Perform();
我使用上面的代码将鼠标悬停在Web元素上。它工作正常。 当我尝试使用上面的代码第二次对同一个Web元素进行鼠标悬停时,它无法正常工作。
他们有什么理由说第二次使用mousehover吗?
答案 0 :(得分:0)
您可能需要释放鼠标,如下所示。
Actions action = new Actions(Driver);
action.MoveToElement(webelement).ClickAndHold().Release().Perform();
如果您只想鼠标悬停,则无需点击并按住。您可以使用以下代码将鼠标悬停在元素上。
Actions action = new Actions(Driver);
action.MoveToElement(webelement).perform();
答案 1 :(得分:0)
ClickAndHold()
方法未释放鼠标。
尝试使用以下代码:
WebElement elem = driver.FindElement(--USE YOUR BY ELEMENT HERE--);
Actions builder = new Actions(driver);
builder.MoveToElement(elem).Perform();//this will hover to YOUR ELEMENT
Thread.Sleep(1000); //avoid using this type of wait. Try to use wait until.
driver.FindElement(--USE HERE YOUR SEPECIFIC ELEMENT--).Click(); //this will click on SEPECIFIC ELEMENT
答案 2 :(得分:0)
你可以尝试这种方法,我正在使用它,每次都适合我:
public static void moveTo(WebElement element){
Actions action=new Actions(BrowserUtilities.driver);
action.moveToElement(element).build().perform();
}
答案 3 :(得分:0)
当你第二次使用Mouse Hover
班级中的ClickAndHold()
时尝试Actions
,如下所示:
Actions action = new Actions(Driver);
action.MoveToElement(webelement).ClickAndHold().Perform();
clickAndHold()
方法基本上是 Clicks (without releasing) at the current mouse location.
。所以它可能对我们没有帮助。但只需 Mouse Hover
,您就不需要Click and Hold
。我们只需 MoveToElement
并调用 Perform()
即可实现以下相同目标:
new Actions(Driver).MoveToElement(webelement).Perform();
答案 4 :(得分:0)
此代码在 python 中,您可以在您的语言中使用相同的功能 #第一次正常使用
actions = ActionChains(self.driver)
actions.move_to_element(admin_tab).perform()
#第二次在使用鼠标悬停之前使用重置动作
actions.reset_actions()# to reset mouse hover
actions = ActionChains(self.driver)
actions.move_to_element(admin_tab_new).perform()