2013-09-26 2 views
1

Я пытаюсь щелкнуть ссылку на мыши, используя код ниже. Webdriver (v.2.35) не вызывает никакой ошибки, но элемент не нажимается. Может кто-нибудь помочь мне выяснить, что случилось?Невозможно нажимать ссылку на наведение мыши, используя Selenium WebDriver с Java

String URL = "http://www.kgisliim.ac.in/" 
String menu ="Alumni>Register" 

driver.get(URL); 
String[] menuItems = menu.split(">"); 
Actions actions = new Actions(driver); 
WebElement tempElem; 
for (int i =0 ; i< menuItems.length ; i++) {      
    tempElem = driver.findElement(By.linkText(menuItems[i].trim())); 
    actions.moveToElement(tempElem).build().perform(); 
} 
actions.click(); 
actions.perform(); 

Примечание: Приведенный выше код работает отлично в приведенном ниже сценарии

String URL = "http://www.flipkart.com/" 
String menu ="Clothing>Jeans" 
+0

'пытается щелкнуть мышью парения link' ... что? вы пытаетесь навестить? или нажмите? Какое поведение вы ожидаете? Наведите указатель мыши на эту ссылку, затем нажмите на появившееся сообщение? – sircapsalot

ответ

1

Вы можете попробовать это:

WebDriver driver=new FirefoxDriver(); 
     driver.get("http://www.kgisliim.ac.in/"); 
     Actions actions=new Actions(driver); 
     WebElement menuHoverLink=driver.findElement(By.linkText("Alumni")); 
     actions.moveToElement(menuHoverLink); 
     //driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS); 
     WebElement subLink=driver.findElement(By.cssSelector(".options>ul>li>a")); 
     actions.moveToElement(subLink); 
     actions.click(); 
     actions.perform(); 
0

Поскольку меню на http://www.kgisliim.ac.in/ занимает второе выскользнуть, вы может добавить WebDriverWait, чтобы убедиться, что подменю имеет время, чтобы стать видимым, прежде чем перемещать курсор к нему. Попробуйте заменить первую строку в цикле for следующей строкой. Это будет ждать максимум 5 секунд для подменю (но вернет WebElement как можно быстрее в течение этого времени).

tempElem = new WebDriverWait(driver, 5).until(ExpectedConditions 
     .elementToBeClickable(By.linkText(menuItems[i].trim()))); 
0

я наткнулся на аналогичный вопрос в последнее время, с phantomJS и ghostdriver. В моем случае проблема заключалась в размере окна - элемент HTML находился за пределами видимой области, и мои движения мыши не имели эффекта (размер по умолчанию - 400x300, что довольно мало).

Вы можете проверить размер окна с

driver.manage().window().getSize() 

И вы можете изменить его с

driver.manage().window().setSize(new Dimension(width, height)); 
Смежные вопросы