Uso de API comunes de selenio

Tabla de contenido

Localizar elementos (findElement)

Posicionamiento del selector CSS 

posicionamiento del selector xpath 

La diferencia entre el selector CSS y el selector XPath 

Manipular objetos de prueba 

clic clic

sendKeys: ingresa el contenido del cuadro de texto

claro: borra el contenido del cuadro de texto 

texto: obtiene el contenido de texto del elemento

getText()(obtener contenido de texto general)

getAttribute() (obtener atributo (valor))

enviar enviar

La diferencia entre enviar y hacer clic 


Localizar elementos (findElement)

Posicionamiento del selector CSS 

Primero busque la página especificada y luego confirme el elemento que se ubicará: como el cuadro de búsqueda en la página de inicio de búsqueda de Baidu 

Abra las herramientas de desarrollador y haga clic en el elemento:

 Encuentre la clase correspondiente, copie el nombre de la clase, llame al método findElement de webdriver y pase la clase a través de By (usando el selector css) 

WebElement element = webDriver.findElement(By.cssSelector(".s_ipt"));

Ingrese en el cuadro de texto y use el método sendKeys:

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;

public class Main {
    public static void main(String[] args) {
        ChromeOptions options=new ChromeOptions();
        options.addArguments("--remote-allow-origins=*");
        WebDriver webDriver=new ChromeDriver(options);
        webDriver.get("https://www.baidu.com/");
        //定位元素
        //找到百度搜索框
       WebElement element = webDriver.findElement(By.cssSelector(".s_ipt"));
       //输入软件测试
        element.sendKeys("软件测试");

    }
}

 Después de hacer clic en Ejecutar, primero se abrirá la página de búsqueda de Baidu del navegador Chrome y luego ingresará "prueba de software" en el cuadro de texto para buscar.

Más formas de utilizar selectores CSS: (Aprender)

selector de identificación (#id)

Selección de clase (clase)

Selección de etiqueta (nombre de etiqueta)

Selección de descendientes (selector de padres, selector de hijos), etc.

posicionamiento del selector xpath 

El posicionamiento del selector xpath es similar al posicionamiento del selector css. Haga clic derecho en la etiqueta para copiar xpath. 

WebElement element=webDriver.findElement(By.xpath("//*[@id=\"kw\"]"));

Varios usos del posicionamiento xpath:

Ruta absoluta (/html/head/title (no se usa comúnmente))

camino relativo 

Ruta relativa + índice (//form/span[1]/input)

Ruta relativa + valor de atributo (//input[@class="s_ipt"])

Ruta relativa + comodín (//*[@*="su"])

Ruta relativa + coincidencia de texto (//a[text()="news"])

La diferencia entre el selector CSS y el selector XPath 

En primer lugar, el selector css es más eficiente que el selector xpath (css está incluido con html, xpath está incluido con DOM (DOM es el intermediario entre js y html)) 

En segundo lugar, xpath es más poderoso que css, por ejemplo, xpath puede seleccionar múltiples elementos y admite el posicionamiento del texto y el movimiento hacia arriba y hacia abajo.

Manipular objetos de prueba 

Los objetos de prueba de uso común en selenio incluyen los siguientes:

clic clic

Por ejemplo, ingrese "pruebas de software" en el cuadro de búsqueda de Baidu y haga clic en Baidu:

 WebElement element=webDriver.findElement(By.xpath("//*[@id=\"kw\"]"));
        //输入软件测试
        element.sendKeys("软件测试");
        //找到百度一下按钮
        //进行点击
        webDriver.findElement(By.cssSelector("#su")).click();

sendKeys: ingresa el contenido del cuadro de texto

Por ejemplo, ingrese "pruebas de software" en el cuadro de búsqueda de Baidu. 

WebElement element=webDriver.findElement(By.xpath("//*[@id=\"kw\"]"));
        //输入软件测试
        element.sendKeys("软件测试");

claro: borra el contenido del cuadro de texto 

Por ejemplo, ingrese "pruebas de software" en el cuadro de búsqueda de Baidu y haga clic en Baidu, luego borre el cuadro de texto e ingrese "front-end vue" para buscar

private static void test02() throws InterruptedException {
        ChromeOptions options=new ChromeOptions();
        options.addArguments("--remote-allow-origins=*");
        WebDriver webDriver=new ChromeDriver(options);
        webDriver.get("https://www.baidu.com/");
        webDriver.findElement(By.cssSelector("#kw")).sendKeys("软件测试");
        webDriver.findElement(By.cssSelector("#su")).click();
        webDriver.findElement(By.cssSelector("#kw")).clear();
        sleep(3000);
        webDriver.findElement(By.cssSelector("#kw")).sendKeys("前端vue");
        webDriver.findElement(By.cssSelector("#su")).click();

    }

texto: obtiene el contenido de texto del elemento

getText()(obtener contenido de texto general)

Por ejemplo, obtenga el primer elemento de búsqueda activa de Baidu en la página de inicio de búsqueda de Baidu:

    private static void test03() {
        ChromeOptions options=new ChromeOptions();
        options.addArguments("--remote-allow-origins=*");
        WebDriver webDriver=new ChromeDriver(options);
        webDriver.get("https://www.baidu.com/");
        //获取到百度热搜第一条的内容
        String res = webDriver.findElement(By.xpath("//*[@id=\"hotsearch-content-wrapper\"]/li[1]/a/span[2]"))
                .getText();
        System.out.println(res);


    }

getAttribute() (obtener atributo (valor))

 Pase el nombre en getAttribute y podrá obtener el valor

    private static void test04() {
        ChromeOptions options=new ChromeOptions();
        options.addArguments("--remote-allow-origins=*");
        WebDriver webDriver=new ChromeDriver(options);
        webDriver.get("https://www.baidu.com/");
        //获取百度一下的value值
       String res= webDriver.findElement(By.cssSelector("#su")).getAttribute("value");
        System.out.println(res);
    }

enviar enviar

Utilice enviar para buscar "pruebas de software":

    private static void test05() {
        ChromeOptions options=new ChromeOptions();
        options.addArguments("--remote-allow-origins=*");
        WebDriver webDriver=new ChromeDriver(options);
        webDriver.get("https://www.baidu.com/");
        WebElement element=webDriver.findElement(By.cssSelector("#kw"));
        element.sendKeys("软件测试");
        webDriver.findElement(By.cssSelector("#su")).submit();
    }

Pero cuando se utiliza enviar para hacer clic en el botón de hipervínculo: por ejemplo, en las noticias

    private static void test06() {
        ChromeOptions options=new ChromeOptions();
        options.addArguments("--remote-allow-origins=*");
        WebDriver webDriver=new ChromeDriver(options);
        webDriver.get("https://www.baidu.com/");
        webDriver.findElement(By.cssSelector("#s-top-left > a:nth-child(1)")).submit();
    }

¡Aparecerá un error como resultado! ! !

Esto se debe a que enviar no admite hipervínculos.

La diferencia entre enviar y hacer clic 

Puede utilizar el clic dondequiera que pueda utilizar el envío, pero es posible que no pueda utilizar el envío dondequiera que utilice el clic. Porque hacer clic admite cuadros de texto, hipervínculos, etc., mientras que enviar no admite hipervínculos. 

Supongo que te gusta

Origin blog.csdn.net/m0_67995737/article/details/132098112
Recomendado
Clasificación