【发布时间】:2012-08-29 19:34:21
【问题描述】:
如何使用 Webdriver Selenium 从菜单中选择一个元素? 菜单下拉菜单显示在鼠标悬停上?
【问题讨论】:
标签: selenium selenium-rc selenium-webdriver
如何使用 Webdriver Selenium 从菜单中选择一个元素? 菜单下拉菜单显示在鼠标悬停上?
【问题讨论】:
标签: selenium selenium-rc selenium-webdriver
您可以通过两种方式进行检查: 1) 第一种方法是使用操作生成器
WebElement mnuElement;
WebElement submnuElement;
mnEle = driver.findElement(By.Id("mnEle")).Click();
sbEle = driver.findElement(By.Id("sbEle")).Click();
Actions builder = new Actions(driver);
// Move cursor to the Main Menu Element
builder.MoveToElement(mnEle).Perform();
// Giving 5 Secs for submenu to be displayed
Thread.sleep(5000L);
// Clicking on the Hidden SubMenu
driver.findElement(By.Id("sbEle")).Click();
见here
2) 另一种方法是使用 jscript 点击直接需要的元素,而不模拟鼠标悬停事件:
String cssLocatorOfTheElement=....//locator of the element to click on
JavascriptExecutor js = (JavascriptExecutor) driver;
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("var x = $(\'"+cssLocatorOfTheElement+"\');");
stringBuilder.append("x.click();");
js.executeScript(stringBuilder.toString());
希望这对你有用)
【讨论】:
模拟 mouseOver 事件,然后选择你喜欢的元素:
var elementToShowMenu = Driver.FindElement(Byl.Id("some id"));
new Actions(Driver).MoveToElement(elementToShowMenu).Release(elementToShowMenu).Build().Perform();
var menuElement = Driver.FindElement(Byl.Id("your menu id"));
【讨论】:
这是我如何单击标签上的不可见锚链接:由 Javascript 动态生成的链接:
public static void mouseClickByLocator( String cssLocator ) {
String locator = cssLocator;
WebElement el = driver.findElement( By.cssSelector( locator ) );
Actions builder = new Actions(driver);
builder.moveToElement( el ).click( el );
builder.perform();
}
【讨论】:
WebElement mnuElement;
WebElement submnuElement;
mnuElement = driver.findElement(By.cssSelector("insert selector here"));
submnuElement = driver.findElement(By.cssSelector("insert selector here"));
Actions builder = new Actions(driver);
// Move cursor to the Main Menu Element
builder.moveToElement(mnuElement).perform();
// Pause 2 Seconds for submenu to be displayed
TimeUnit.SECONDS.sleep(2); //Pause 2 seconds
// Clicking on the Hidden submnuElement
submnuElement.click();
【讨论】: