2012-09-03 15 views
7

Hola, estoy usando Selenium Standalone Server junto con el ejecutor de comandos Selenese para probar Safari en Mac OS X. Tengo problemas para hacer clic en algunos botones en páginas específicas. Los mismos clics funcionan perfectamente en otros navegadores como Firefox (Windows), Chrome (Windows + Mac), simuladores IOS, IE. También soy capaz de obtener el botón a través de la identificación. Lo confirmo obteniendo el texto de los botones usando: getText(). Lo único es que no pasa nada después de hacer clic en el comando. He intentado usar button.click(), button.submit(). también usé id, xpath, clase para encontrar el botón. Como mencioné: soy capaz de obtener la identificación, solo que el clic no funciona. ¿alguna sugerencia? parte del código es:Algunos clics no funcionan en el navegador Safari usando el servidor independiente de selenio

public static WebDriver getSafariDriver() 
    { 
     try 
     { 
      DesiredCapabilities capabilities = new DesiredCapabilities(); 
      capabilities.setBrowserName("safari"); 
      capabilities.setJavascriptEnabled(true); 
      CommandExecutor executor = new SeleneseCommandExecutor(new URL("http://localhost:4444/"), new URL("http://www.google.com/"), capabilities); 
      WebDriver driver = new RemoteWebDriver(executor, capabilities); 
      return driver; 
     } catch (MalformedURLException e) 
     { 
      e.printStackTrace(); 
     } 
     return null; 
    } 

¿Hay alguna solución mediante el símbolo del sistema? ¿O algo más que pueda probar o me estoy perdiendo? Por favor ayuda.

+0

estoy también enfrenta la mismo problema. Sucede en el safari de Windows y MAC. –

Respuesta

0

Trate de usar javascript ejecutor

WebElement yourelement= driver.findElement(By.id("btn")); 
JavascriptExecutor executor = (JavascriptExecutor)driver; 
executor.executeScript("arguments[0].click();", yourelement); 
0

que tenía el mismo problema. Después de un largo tiempo de depuración, descubrí que el problema era que el JS no estaba completamente cargado antes de que Safari lo hiciera, por lo que tuve que esperar mucho tiempo antes de realizar la prueba.

I lado del servidor procesa el botón (reaccionar componente) pero la función del botón se implementó cuando el documento estaba listo.

0

tuve el mismo problema con Safari 10+, OSX El Capitán y selenio 3.0.1

Otra alternativa puede ser la de enviar una tecla de retorno implementado en Python:

from selenium import webdriver 
from selenium.webdriver.common.keys import Keys 

driver = webdriver.Safari() 
driver.get('http://localhost:8000') 
element = driver.find_element_by_id("submit") 
element.send_keys(Keys.RETURN) 
Cuestiones relacionadas