我有一个场景,如果鼠标悬停在一个框中,它会显示我想要点击的按钮。 html是这样的:
<div class="Box on which hovering i get the button">
<div class="special button comes only on hovering">
我使用此代码点击webdriver但没有任何成功:
(IrenderedWebElement)driver.hover(locatorOfBox)
(IrenderedWebElement)driver.click(special button locator)
if(button.isDisplayed)
driver.click
我已尝试在悬停和点击之间等待,但没有用。我被困在那里寻找答案。
答案 0 :(得分:1)
使用Actions类。这是一个例子,“Rounds”子菜单项只有在“默认管理”顶级菜单项上悬停后才能看到:
IWebElement topLevelMenu = driver.FindElement(By.LinkText("DEFAULT MANAGEMENT"));
var actions = new Actions(driver);
actions.MoveToElement(topLevelMenu).Perform();
driver.FindElement(By.LinkText("ROUNDS")).Click();
答案 1 :(得分:0)
尝试点击第一个div类,然后点击第二个。
答案 2 :(得分:0)
使用Xpath(找到确切的按钮 - 在自动生成id时有帮助)点击按钮
driver.findElement(By.xpath("//*[@class='Box on which hovering i get the button']/div")).click();
希望下面的链接有助于手动生成xpath
http://www.guru99.com/accessing-links-tables-selenium-webdriver.html
see under "Reading a Table-->XPath Syntax"