Wykonanie kliknięcia za pomocą JavaScriptu ma pewne zachowania, o których powinieneś wiedzieć. Jeśli na przykład kod powiązany z zdarzeniem onclick
wywoła kod window.alert()
, kod Selenium może się zawiesić, w zależności od implementacji sterownika przeglądarki. Mimo to możesz użyć klasy JavascriptExecutor
, aby to zrobić. Moje rozwiązanie różni się od innych proponowanych, jednak, że nadal można używać metod WebDriver do lokalizowania elementów.
// Assume driver is a valid WebDriver instance that
// has been properly instantiated elsewhere.
WebElement element = driver.findElement(By.id("gbqfd"));
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click();", element);
Należy również pamiętać, że może być lepiej przy użyciu metody interfejsu WebElement
click()
, ale disabling native events przed instancji sterownika. Osiągnęłoby to ten sam cel (z tymi samymi potencjalnymi ograniczeniami), ale nie zmuszało do pisania i utrzymywania własnego kodu JavaScript.
ja nie rozumiem - chcesz '.Kliknij()' ognia funkcji javascript binded do przycisk? A może potrzebujesz czegoś takiego jak http://code.google.com/p/selenium/wiki/FrequentlyAskedQuestions#Q:_How_do_I_execute_Javascript_directly? – WTK