没有这样的元素:无法在selenium java中定位元素:{method:css选择器,选择器:“input [name ='name']}

问题描述 投票:0回答:2

我测试了以下代码:

import java.util.List;

import org.openqa.selenium.By;

import org.openqa.selenium.Keys;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

import org.openqa.selenium.chrome.ChromeDriver;

import org.openqa.selenium.support.ui.Select

        ;

public class TestTwiter {

public static void main(String[] args) throws InterruptedException {

// TODO Auto-generated method stub

                WebDriver driver = new ChromeDriver();

driver.get("https://twitter.com/?lang=fr");

                Thread.sleep(2000);

driver.findElement(By.xpath("//span[contains(text(),'Créer un compte')]")).click();;

                WebElement NomPrenom = driver.findElement(By.cssSelector("input[name='name']"));                

NomPrenom.sendKeys("foulen ben foulen");

NomPrenom.sendKeys(Keys.TAB);

                Thread.sleep(2000);     

                WebElement mail = driver.switchTo().activeElement();

mail.sendKeys("[email protected]");

                Thread.sleep(2000);

                WebElement listeMois = driver .findElement(By.xpath("//select[@id='SELECTOR_1']"));

                Thread.sleep(2000);

                Select mois = new Select(listeMois);

mois.selectByIndex(2);

                Thread.sleep(2000);

// Ou bien, vous pouvez utiliser l'une des méthodes suivantes pour sélectionner le mois :

//mois.selectByValue("2");

//mois.deselectByVisibleText("Février");

                WebElement jourdropdown = driver.findElement(By.cssSelector("#SELECTOR_2"));

                Select jour = new Select(jourdropdown);

jour.selectByValue("3");

                Thread.sleep(2000);

                WebElement Annéesdropdown = driver .findElement(By.cssSelector("#SELECTOR_3"));

                Select Années = new Select(Annéesdropdown );

Années.selectByValue("1999");

                Thread.sleep(2000);

                WebElement Button = driver .findElement(By.cssSelector("span[class='css-1qaijid r-dnmrzs r-1udh08x r-3s2u2q r-bcqeeo r-qvutc0 r-poiln3 r-1inkyih r-rjixqe'] span[class='css-1qaijid r-bcqeeo r-qvutc0 r-poiln3']"));

Button.click();

                List <WebElement> links = driver .findElements(By.tagName("a"));

int linkCount = links.size();

                System.out.println("le nombre de liens est : " + linkCount);

driver.close();

当我运行时,我收到错误:

Exception in thread "main" : no such element: unable to locate element : "method":"css selector","selector:"input[name='name']"

我需要帮助。

我尝试通过

css
更改
xpath
选择器,但收到相同的结果。

java selenium-webdriver
2个回答
0
投票

尝试在声明 NomPrenom 变量之前添加等待,因为输入字段之前有一个加载程序。因此,当驱动程序尝试查找文本字段时,它会失败,因为网络应用程序正在加载字段


0
投票

您能否提供您要选择的元素的 HTML 代码?如果 CSS Selector 和 XPath 都存在问题,则表明问题可能出在语法或结构上。

© www.soinside.com 2019 - 2024. All rights reserved.