Quiero abrir un enlace en una página web. El enlace parece estar dentro de una lista desordenada en el que reside dentro de una etiqueta. La dirección url de la página web es selftechy punto com. Las pestañas son el hogar de, aproximadamente, el selenio.

He intentado abrir el enlace usando driver.findElement(By.linkText("Selenium")); pero la página parece perdido su estilo. También probé con xpath método, pero no funciona bien. Por favor, que me explique por qué no funciona, y cómo se debería modificar el código para que funcione correctamente. Gracias por tu ayuda.

Fragmento de código HTML:

<body class="custom">
<div id="container">
<div id="page">
<ul class="menu">
<li class="tab tab-home current"><a href="http://selftechy.com">Home</a></li>
<li class="tab tab-1"><a href="http://selftechy.com/about" title="About">About</a></li>
<li class="tab tab-2"><a href="http://selftechy.com/selenium-2" title="Selenium">Selenium</a></li>
</ul>

webdriver código para abrir el enlace

import java.util.List;
import java.util.concurrent.TimeUnit;
import org.junit.*;

import org.junit.Before;
import org.junit.After;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select;

public class selftechyTestng 
{
    private WebDriver driver;
    private String baseUrl;

    @Before
    public void setUp() throws Exception
    {
        driver = new FirefoxDriver();
        baseUrl = "http://selftechy.com/";
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    }
    @Test
    public void searchElements() throws Exception{
        driver.get(baseUrl);

            //use By.linkText method the page lost its styling
            driver.findElement(By.linkText("Selenium"));

        //use xpath method to open the link doesn't work either 
        List<WebElement> elements = driver.findElements(By.xpath("//div[@id=page]/*[3]")).click(); 
        driver.findElement(By.xpath("//div[@id=page]/*[3]")).click(); 
    }

}
  • Usted podría tener un problema con su xpath. Antes de intentar depurar su webdriver script, trate de usar firepath para confirmar que su xpath definitivamente trabaja en la identificación de su elemento de la pantalla.
InformationsquelleAutor user2061466 | 2013-05-19

4 Comentarios

  1. 6

    ¿Por qué buscar el div y, a continuación, el elemento secundario – ¿hay alguna razón en particular? No veo ninguna ventaja y, ciertamente, entonces, usted no está consiguiendo los a elemento que usted realmente desea, haga clic en. En mi opinión es mucho más fácil utilizar el

    driver.findElement(By.xpath("//a[@title = 'Selenium']")).click();

    Utilizando su enfoque tiene que utilizar

    driver.findElement(By.xpath("//div[@id = 'page']/ul/li[3]/a")).click(); 
    • Gracias por la respuesta. Ambos de sus soluciones trabajado. Veo que @ es usado para seleccionar el atributo dentro de la etiqueta HTML.
    • ¿cómo le ha identificado el mismo si el título no estaba disponible como un atributo de html.
    • Si usted tiene una nueva pregunta, por favor pregunte a una nueva pregunta. Es demasiado difícil de resolver aquí en los comentarios, ya que depende totalmente de cómo su HTML parece – puede Que no tenga un atributo de título, pero seguro que han algo los demás a identificar el elemento.
  2. 0

    También puede utilizar este xpath:

    "//a[text()='Selenium']"

    Se encuentra el enlace con el texto = Selenio

  3. 0

    A continuación el código se abrirá el enlace en una nueva ventana y se imprime el título y la url de la ventana recién abierta.

        String defaultwindow = "";
    @Test(description="Main Page")
    public void UserOnMainPage()
    {
            driver.get("http://yoururl.com");
            defaultwindow = driver.getWindowHandle();
            String selectAll = Keys.chord(Keys.SHIFT,Keys.RETURN);
            driver.findElement(By.linkText("linkname")).sendKeys(selectAll);
            printTitleandUrlofNewlyOpenedwindow();
    }
    
    private void printTitleandUrlofNewlyOpenedwindow() 
    {
            Set<String> windowHandles1 = driver.getWindowHandles();
            int size = windowHandles1.size();
            System.out.println(size); 
            for (String string : windowHandles1) 
            {
               driver.switchTo().window(string);
    
               if(string.equals(defaultwindow))
               {
                   System.out.println("On Main Window");
                   Reporter.log("On Main Window");
               }
               else
               {
                   String title=driver.getTitle();
                   System.out.println(title);
                   Reporter.log(title);  
                   String recipeUrl = driver.getCurrentUrl();
                   System.out.println(recipeUrl);     
                   Reporter.log(recipeUrl);
    
               }
           }
           driver.switchTo().window(defaultwindow);
    }
  4. 0

    A continuación el código se abrirá el enlace en una nueva Pestaña.

    Cadena selectLinkOpeninNewTab = Teclas.acorde(Teclas.CONTROL de Llaves.De RETORNO);
    el controlador.findElement(Por.linkText(«urlLink»)).sendKeys(selectLinkOpeninNewTab);

Dejar respuesta

Please enter your comment!
Please enter your name here