Java driver.findElement(By.cssSelector(..)Selenium在Windows 10中不工作

Java driver.findElement(By.cssSelector(..)Selenium在Windows 10中不工作,java,selenium-webdriver,error-handling,css-selectors,windows-10,Java,Selenium Webdriver,Error Handling,Css Selectors,Windows 10,我在Selenium和windows10中遇到CSS选择器问题。标签似乎不正确。而且,我不确定出了什么问题。你能帮忙吗 import java.util.concurrent.TimeUnit; import org.openqa.selenium.By; import org.openqa.selenium.By.ById; import org.openqa.selenium.By.ByXPath; import org.openqa.selenium.WebDriver; import o

我在
Selenium
windows10
中遇到CSS选择器问题。标签似乎不正确。而且,我不确定出了什么问题。你能帮忙吗

import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.By.ById;
import org.openqa.selenium.By.ByXPath;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;

public class Locator2 {

    public static void main(String[] args) {
        
        System.setProperty("webdriver.chrome.driver","C:\\Users\\abhij\\Desktop\\seliniumjars\\chromedriver.exe");
        
        WebDriver driver=new ChromeDriver();
        driver.get("https://login.yahoo.com/?.src=ym&.intl=us&.lang=en-       US&.done=https%3a//mail.yahoo.com");
        driver.manage().timeouts().implicitlyWait(50, TimeUnit.SECONDS);
        //driver.findElement(By.xpath(".//*[@id='login-username']")).sendKeys("asdfasd");
        driver.findElement(By.cssSelector("input[id='login-username']]")).sendKeys("asdfasd");

        //driver.findElement(By.cssSelector("input[id='login1']")).sendKeys("asdfasd");
        //driver.manage().timeouts().implicitlyWait(50, TimeUnit.SECONDS);
        //driver.findElement(By.cssSelector("input[name='login1']")).sendKeys("asdfasd");   
    }
}
例外情况:

>Exception in thread "main" org.openqa.selenium.InvalidElementStateException: invalid element state: Failed to execute 'querySelector' on 'Document': 'input[id='login-username']]' is not a valid selector
线程“main”org.openqa.selenium.InvalidElementStateException中的异常:元素状态无效:未能对“文档”执行“querySelector”:“输入[id='login-username']]”不是有效的选择器

错误是绝对正确的,因为您的
css选择器
不正确,只需省略最后一个
]
方括号,这是额外的,请按以下方式尝试:-

driver.findElement(By.cssSelector("input[id='login-username']")).sendKeys("asdfasd");
driver.findElement(By.cssSelector("input#login-username")).sendKeys("asdfasd");
driver.findElement(By.id("login-username")).sendKeys("asdfasd");
您还可以使用
cssSelector
使用
id
属性值来定位元素,如下所示:-

driver.findElement(By.cssSelector("input[id='login-username']")).sendKeys("asdfasd");
driver.findElement(By.cssSelector("input#login-username")).sendKeys("asdfasd");
driver.findElement(By.id("login-username")).sendKeys("asdfasd");

Selenium
还可以使用元素的
id
属性值直接定位元素,因此您可以使用以及以下方法定位此元素:-

driver.findElement(By.cssSelector("input[id='login-username']")).sendKeys("asdfasd");
driver.findElement(By.cssSelector("input#login-username")).sendKeys("asdfasd");
driver.findElement(By.id("login-username")).sendKeys("asdfasd");

无法使用selinium获得css选择器工作,标记是正确的。不确定我缺少的是线程“main”org.openqa.selenium.InvalidElementStateException中的输出。异常:无效元素状态:未能对“Document”执行“querySelector”:“input[id='login-username']]“”不是有效的选择器。您是否阅读了错误消息?上面写着什么?谢谢saurabh.明白了