我正在尝试为this执行SignIn。在其中点击我已成功完成的'SignIn'。现在,当尝试使用Xpath键入用户名/密码时,它会显示异常,表示
线程“main”中的异常 org.openqa.selenium.ElementNotVisibleException:元素不可见
代码是: -
driver.findElement(By.xpath(".//*[@id='load_form']/fieldset[1]/input")).sendKeys("test123");
driver.findElement(By.xpath(".//*[@id='load_form']/fieldset[2]/input")).sendKeys("test123");
我知道这个Xpath
与SignUp
形式中使用的相同,那么找到这两个字段的其他方法是什么?我们如何使用cssselector
来使用它?
感谢您的帮助。
答案 0 :(得分:1)
使用
查找相对xpath时向上一级//div[@id='login']/form[@id='load_form']//input[@name='username']
//div[@id='login']/form[@id='load_form']//input[@name='password']
答案 1 :(得分:1)
试试这个
//For Username
driver.findElement(By.xpath("(//input[@name='username'])[2]")).sendKeys("username test");
//or
driver.findElement(By.cssSelector("#login > #load_form > fieldset > input[name='usernam']")).click();
//For password
driver.findElement(By.xpath("(//input[@name='password'])[2]")).sendKeys("password test");
//or
driver.findElement(By.cssSelector("#login > #load_form > fieldset > input[name='password']")).click();
上述代码对我有用。
答案 2 :(得分:1)
提供的xpath
基本上找到了两个元素,它可以与第一个找不到的元素一起使用,例如,您应该尝试使用cssSelector
,如下所示: -
driver.findElement(By.cssSelector("div#login input[name = 'username']")).sendKeys("test123");
driver.findElement(By.cssSelector("div#login input[name = 'password']")).sendKeys("test123");
注意: - 了解cssSelector
关注this url和xPath
关注this url
我建议您在使用定位器执行selenium之前确保使用定位器是正确的,并通过按f12 在浏览器控制台上返回单个或多个元素。要验证xPath
,您应该使用$x("your xpath expression")
,对于cssSelector
,您应该使用document.querySelector("your css selector expression")
..
希望它会对你有所帮助.. :)